aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorMarek Kotewicz <marek.kotewicz@gmail.com>2015-01-19 19:59:29 +0800
committerMarek Kotewicz <marek.kotewicz@gmail.com>2015-01-19 19:59:29 +0800
commitaf54832d2435ff4116c887effa09e4f276ac970c (patch)
treed7e47bdf6ba4c6a7ab8cd7a688d8f7249428a132 /lib
parent86b417e83f1f631cd55d16596b458b74601c43e5 (diff)
downloadgo-tangerine-af54832d2435ff4116c887effa09e4f276ac970c.tar.gz
go-tangerine-af54832d2435ff4116c887effa09e4f276ac970c.tar.zst
go-tangerine-af54832d2435ff4116c887effa09e4f276ac970c.zip
encoding real on input
Diffstat (limited to 'lib')
-rw-r--r--lib/abi.js11
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/abi.js b/lib/abi.js
index 319b06066..0b0049ea5 100644
--- a/lib/abi.js
+++ b/lib/abi.js
@@ -116,6 +116,13 @@ var formatInputBool = function (value) {
return '000000000000000000000000000000000000000000000000000000000000000' + (value ? '1' : '0');
};
+/// Formats input value to byte representation of real
+/// Values are multiplied by 2^m and encoded as integers
+/// @returns byte representation of real
+var formatInputReal = function (value) {
+ return formatInputInt(new BigNumber(value).times(new BigNumber(2).pow(128)));
+};
+
var dynamicTypeBytes = function (type, value) {
// TODO: decide what to do with array of strings
if (arrayType(type) || prefixedType('string')(type))
@@ -132,8 +139,8 @@ var setupInputTypes = function () {
{ type: prefixedType('int'), format: formatInputInt },
{ type: prefixedType('hash'), format: formatInputInt },
{ type: prefixedType('string'), format: formatInputString },
- { type: prefixedType('real'), format: formatInputInt },
- { type: prefixedType('ureal'), format: formatInputInt },
+ { type: prefixedType('real'), format: formatInputReal },
+ { type: prefixedType('ureal'), format: formatInputReal },
{ type: namedType('address'), format: formatInputInt },
{ type: namedType('bool'), format: formatInputBool }
];