From 982eae3025c244747d8ecaac7b9df485c49e32e0 Mon Sep 17 00:00:00 2001 From: Brooklyn Zelenka Date: Fri, 4 May 2018 00:01:43 -0700 Subject: [PATCH 1/6] Started simple translation --- contracts/examples/EnglishESC.sol | 66 +++++++++++++++++++++++++++++++ contracts/examples/Phone.sol | 2 +- 2 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 contracts/examples/EnglishESC.sol diff --git a/contracts/examples/EnglishESC.sol b/contracts/examples/EnglishESC.sol new file mode 100644 index 0000000..8532f1f --- /dev/null +++ b/contracts/examples/EnglishESC.sol @@ -0,0 +1,66 @@ +pragma solidity ^0.4.23; + +import "../Status.sol"; + +contract EnglishESC { + mapping(byte => string) public messages; + + constructor() public { + add(hex"00", "Failure"); + add(hex"01", "Success"); + add(hex"02", "Accepted/Started"); + add(hex"03", "Awaiting/Before"); + add(hex"04", "Action Required"); + add(hex"05", "Expired"); + + add(hex"0F", "Metadata Only"); + + add(hex"10", "Disallowed"); + add(hex"11", "Allowed"); + add(hex"12", "Requested Permission"); + add(hex"13", "Awaiting Permission"); + add(hex"14", "Awaiting Your Permission"); + add(hex"15", "No Longer Allowed"); + + add(hex"20", "Not Found"); + add(hex"21", "Found"); + add(hex"22", "Match Request Sent"); + add(hex"23", "Awaiting Match"); + add(hex"24", "Match Request Received"); + add(hex"25", "Out of Range"); + + add(hex"30", "Other Party Disagreed"); + add(hex"31", "Other Party Agreed"); + add(hex"32", "Sent Offer"); + add(hex"33", "Awaiting Their Ratification"); + add(hex"34", "Awaiting Your Ratification"); + add(hex"35", "Offer Expired"); + + add(hex"40", "Unavailable"); + add(hex"41", "Available"); + add(hex"42", "You May Begin"); + add(hex"43", "Not Yet Available"); + add(hex"44", "Awaiting Your Availability/Signal"); + add(hex"45", "No Longer Available"); + + add(hex"E0", "Decrypt Failure"); + add(hex"E1", "Decrypt Success"); + add(hex"E2", "Signed"); + add(hex"E3", "Oter Party Signature Required"); + add(hex"E4", "Your Signature Expired"); + add(hex"E5", "Token Expired"); + + add(hex"F0", "Off Chain Failure"); + add(hex"F1", "Off Chain Success"); + add(hex"F2", "Off Chain Process Started"); + add(hex"F3", "Awaiting Off Chain Completion"); + add(hex"F4", "Off Chain Action Required"); + add(hex"F5", "Off Chain Service Not Available"); + + add(hex"FF", "Data Source is Off Chain (ie: no guarantees)"); + } + + function add(byte _code, string _msg) internal { + messages[_code] = _msg; + } +} diff --git a/contracts/examples/Phone.sol b/contracts/examples/Phone.sol index e3c761d..0170ba1 100644 --- a/contracts/examples/Phone.sol +++ b/contracts/examples/Phone.sol @@ -39,7 +39,7 @@ contract Phone { return (toCode(Call.AnsweringMachine), "Your message has been recorded"); } - function normalize(byte _code, string _response) internal returns (byte, string) { + function normalize(byte _code, string _response) internal pure returns (byte, string) { if (_code == toCode(Call.Started)) { return (_code, _response); } if (_code == toCode(Call.BusySignal)) { return (_code, "BUSY TONE"); } if (Status.isOk(_code)) { return (toCode(Call.Connected), ""); } From ef9549fceab2366ed2e55e86703d2af869b9c503 Mon Sep 17 00:00:00 2001 From: Brooklyn Zelenka Date: Fri, 4 May 2018 00:12:32 -0700 Subject: [PATCH 2/6] Split out --- .../ESCBasicEnglish.sol} | 10 ++-------- contracts/localization/ESCLocalization.sol | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 8 deletions(-) rename contracts/{examples/EnglishESC.sol => localization/ESCBasicEnglish.sol} (91%) create mode 100644 contracts/localization/ESCLocalization.sol diff --git a/contracts/examples/EnglishESC.sol b/contracts/localization/ESCBasicEnglish.sol similarity index 91% rename from contracts/examples/EnglishESC.sol rename to contracts/localization/ESCBasicEnglish.sol index 8532f1f..d766755 100644 --- a/contracts/examples/EnglishESC.sol +++ b/contracts/localization/ESCBasicEnglish.sol @@ -1,10 +1,8 @@ pragma solidity ^0.4.23; -import "../Status.sol"; - -contract EnglishESC { - mapping(byte => string) public messages; +import "./ESCLocalizatin.sol"; +contract EnglishESC is ESCLocalization { constructor() public { add(hex"00", "Failure"); add(hex"01", "Success"); @@ -59,8 +57,4 @@ contract EnglishESC { add(hex"FF", "Data Source is Off Chain (ie: no guarantees)"); } - - function add(byte _code, string _msg) internal { - messages[_code] = _msg; - } } diff --git a/contracts/localization/ESCLocalization.sol b/contracts/localization/ESCLocalization.sol new file mode 100644 index 0000000..f70bad2 --- /dev/null +++ b/contracts/localization/ESCLocalization.sol @@ -0,0 +1,17 @@ +pragma solidity ^0.4.23; + +import "../Status.sol"; + +contract ESCLocalization { + mapping(byte => string) public messages; + + event StatusCode(byte indexed code, string indexed message); + + function add(byte _code, string _msg) internal { + messages[_code] = _msg; + } + + function emitMessage(byte _code) external { + emit StatusCode(_code, messages[_code]); + } +} From c9252ee520311dc35208a6bdc6a7405cff8ea84d Mon Sep 17 00:00:00 2001 From: Brooklyn Zelenka Date: Fri, 4 May 2018 00:13:43 -0700 Subject: [PATCH 3/6] Typo --- contracts/localization/ESCBasicEnglish.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/localization/ESCBasicEnglish.sol b/contracts/localization/ESCBasicEnglish.sol index d766755..3291c38 100644 --- a/contracts/localization/ESCBasicEnglish.sol +++ b/contracts/localization/ESCBasicEnglish.sol @@ -1,6 +1,6 @@ pragma solidity ^0.4.23; -import "./ESCLocalizatin.sol"; +import "./ESCLocalization.sol"; contract EnglishESC is ESCLocalization { constructor() public { From 12f6344697c3291d14e1a0b124d58d6f4524c823 Mon Sep 17 00:00:00 2001 From: Brooklyn Zelenka Date: Fri, 4 May 2018 00:15:01 -0700 Subject: [PATCH 4/6] Simpler naming --- contracts/localization/ESCLocalization.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/localization/ESCLocalization.sol b/contracts/localization/ESCLocalization.sol index f70bad2..dfc96c2 100644 --- a/contracts/localization/ESCLocalization.sol +++ b/contracts/localization/ESCLocalization.sol @@ -11,7 +11,7 @@ contract ESCLocalization { messages[_code] = _msg; } - function emitMessage(byte _code) external { + function log(byte _code) external { emit StatusCode(_code, messages[_code]); } } From d3c33876c0bdc72f05bf4f787552ecca1dfa43e5 Mon Sep 17 00:00:00 2001 From: Brooklyn Zelenka Date: Fri, 4 May 2018 00:17:13 -0700 Subject: [PATCH 5/6] Clearer naming --- .../{ESCBasicEnglish.sol => BasicEnglishStatusCodes.sol} | 4 ++-- .../{ESCLocalization.sol => StatusCodeLocalization.sol} | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) rename contracts/localization/{ESCBasicEnglish.sol => BasicEnglishStatusCodes.sol} (94%) rename contracts/localization/{ESCLocalization.sol => StatusCodeLocalization.sol} (91%) diff --git a/contracts/localization/ESCBasicEnglish.sol b/contracts/localization/BasicEnglishStatusCodes.sol similarity index 94% rename from contracts/localization/ESCBasicEnglish.sol rename to contracts/localization/BasicEnglishStatusCodes.sol index 3291c38..6e4beca 100644 --- a/contracts/localization/ESCBasicEnglish.sol +++ b/contracts/localization/BasicEnglishStatusCodes.sol @@ -1,8 +1,8 @@ pragma solidity ^0.4.23; -import "./ESCLocalization.sol"; +import "./StatusCodeLocalization.sol"; -contract EnglishESC is ESCLocalization { +contract BasicEnglishStatusCodes is StatusCodeLocalization { constructor() public { add(hex"00", "Failure"); add(hex"01", "Success"); diff --git a/contracts/localization/ESCLocalization.sol b/contracts/localization/StatusCodeLocalization.sol similarity index 91% rename from contracts/localization/ESCLocalization.sol rename to contracts/localization/StatusCodeLocalization.sol index dfc96c2..9a541b2 100644 --- a/contracts/localization/ESCLocalization.sol +++ b/contracts/localization/StatusCodeLocalization.sol @@ -2,7 +2,7 @@ pragma solidity ^0.4.23; import "../Status.sol"; -contract ESCLocalization { +contract SttausCodeLocalization { mapping(byte => string) public messages; event StatusCode(byte indexed code, string indexed message); From 5501138526ff1b7c2d1290eaac04a3328f7decfd Mon Sep 17 00:00:00 2001 From: Brooklyn Zelenka Date: Fri, 4 May 2018 00:20:05 -0700 Subject: [PATCH 6/6] Typo --- contracts/localization/StatusCodeLocalization.sol | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/contracts/localization/StatusCodeLocalization.sol b/contracts/localization/StatusCodeLocalization.sol index 9a541b2..8bae032 100644 --- a/contracts/localization/StatusCodeLocalization.sol +++ b/contracts/localization/StatusCodeLocalization.sol @@ -1,8 +1,6 @@ pragma solidity ^0.4.23; -import "../Status.sol"; - -contract SttausCodeLocalization { +contract StatusCodeLocalization { mapping(byte => string) public messages; event StatusCode(byte indexed code, string indexed message);