ethereum-localized-messaging

A method of converting machine codes to human-readable text in any language and phrasing.

Usage no npm install needed!

<script type="module">
  import ethereumLocalizedMessaging from 'https://cdn.skypack.dev/ethereum-localized-messaging';
</script>

README

Ethereum Localized Messaging

Build Status Badge Coverage Status ERC1444

A method of converting machine codes to human-readable text in any language and phrasing.

An Implementation of EIP-1444

EIP-1444: an on-chain system for providing user feedback by converting machine-efficient codes into human-readable strings in any language or phrasing. The system does not impose a list of languages, but rather lets users create, share, and use the localized text of their choice.

Installation

npm install ethereum-localized-messaging

Usage

Implement your own localizations:

pragma solidity ^0.5.0;

import "/ethereum-localized-messaging/contracts/Localization.sol";

contract PirateLocalization is Localization {
    constructor() public {
        set(hex"00", "Nay!");
        set(hex"01", "Aye!");
        set(hex"02", "Arr jolly crew have begun");
        set(hex"03", "Awaitin'");
        set(hex"04", "Ye need ta do something");
        set(hex"05", "Has walked thar plank an expired");
        set(hex"0F", "Only this here metadata");
        set(hex"10", "Ye can nay do that");
        set(hex"11", "Ye be permitted");
        set(hex"12", "Ye have requested thar go ahead");
        set(hex"13", "Yer waitin' fer the go ahead");
        set(hex"14", "Thar awaiting yer signal");
    }
}
pragma solidity ^0.5.0;

import "/ethereum-localized-messaging/contracts/LocalizationPreferences.sol";
import "./PirateLocalization.sol";

contract MyContract {
    LocalizationPreferences prefs;

    constructor() public {
        PirateLocalization pirateLocalization = new PirateLocalization();
        prefs = new LocalizationPreferences(pirateLocalization);
    }

    function localize(bytes32 _code) view public returns (bool _found, string _msg) {
        return prefs.textFor(_code);
    }
}

Contributing

Prerequisites

  • NodeJS, v10.11.0 or higher
  • Truffle, v5.0.0-beta.0

Quick Start

  1. npm install
  2. truffle compile
  3. npm run coverage