forked from cerc-io/plugeth
next part of abi.js docs
This commit is contained in:
parent
6b2ec23132
commit
b0a9bbf33a
63
dist/ethereum.js
vendored
63
dist/ethereum.js
vendored
@ -36,6 +36,10 @@ var decToHex = function (dec) {
|
|||||||
return parseInt(dec).toString(16);
|
return parseInt(dec).toString(16);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// Finds first index of array element matching pattern
|
||||||
|
/// @param array
|
||||||
|
/// @param callback pattern
|
||||||
|
/// @returns index of element
|
||||||
var findIndex = function (array, callback) {
|
var findIndex = function (array, callback) {
|
||||||
var end = false;
|
var end = false;
|
||||||
var i = 0;
|
var i = 0;
|
||||||
@ -45,32 +49,40 @@ var findIndex = function (array, callback) {
|
|||||||
return end ? i - 1 : -1;
|
return end ? i - 1 : -1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// @returns a function that is used as a pattern for 'findIndex'
|
||||||
var findMethodIndex = function (json, methodName) {
|
var findMethodIndex = function (json, methodName) {
|
||||||
return findIndex(json, function (method) {
|
return findIndex(json, function (method) {
|
||||||
return method.name === methodName;
|
return method.name === methodName;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// @param string string to be padded
|
||||||
|
/// @param number of characters that result string should have
|
||||||
|
/// @returns right aligned string
|
||||||
var padLeft = function (string, chars) {
|
var padLeft = function (string, chars) {
|
||||||
return new Array(chars - string.length + 1).join("0") + string;
|
return new Array(chars - string.length + 1).join("0") + string;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// @param expected type prefix (string)
|
||||||
|
/// @returns function which checks if type has matching prefix. if yes, returns true, otherwise false
|
||||||
|
var prefixedType = function (prefix) {
|
||||||
|
return function (type) {
|
||||||
|
return type.indexOf(prefix) === 0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
/// @param expected type name (string)
|
||||||
|
/// @returns function which checks if type is matching expected one. if yes, returns true, otherwise false
|
||||||
|
var namedType = function (name) {
|
||||||
|
return function (type) {
|
||||||
|
return name === type;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
/// Setups input formatters for solidity types
|
/// Setups input formatters for solidity types
|
||||||
/// @returns an array of input formatters
|
/// @returns an array of input formatters
|
||||||
var setupInputTypes = function () {
|
var setupInputTypes = function () {
|
||||||
|
|
||||||
var prefixedType = function (prefix) {
|
|
||||||
return function (type, value) {
|
|
||||||
return type.indexOf(prefix) === 0;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
var namedType = function (name, formatter) {
|
|
||||||
return function (type, value) {
|
|
||||||
return type === name;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
var formatInt = function (value) {
|
var formatInt = function (value) {
|
||||||
var padding = 32 * 2;
|
var padding = 32 * 2;
|
||||||
if (typeof value === 'number')
|
if (typeof value === 'number')
|
||||||
@ -106,6 +118,11 @@ var setupInputTypes = function () {
|
|||||||
|
|
||||||
var inputTypes = setupInputTypes();
|
var inputTypes = setupInputTypes();
|
||||||
|
|
||||||
|
/// Formats input params to bytes
|
||||||
|
/// @param contract json abi
|
||||||
|
/// @param name of the method that we want to use
|
||||||
|
/// @param array of params that will be formatted to bytes
|
||||||
|
/// @returns bytes representation of input params
|
||||||
var toAbiInput = function (json, methodName, params) {
|
var toAbiInput = function (json, methodName, params) {
|
||||||
var bytes = "";
|
var bytes = "";
|
||||||
var index = findMethodIndex(json, methodName);
|
var index = findMethodIndex(json, methodName);
|
||||||
@ -136,23 +153,6 @@ var toAbiInput = function (json, methodName, params) {
|
|||||||
/// @returns an array of output formatters
|
/// @returns an array of output formatters
|
||||||
var setupOutputTypes = function () {
|
var setupOutputTypes = function () {
|
||||||
|
|
||||||
/// @param expected type prefix (string)
|
|
||||||
/// @returns function which checks if type has matching prefix. if yes, returns true, otherwise false
|
|
||||||
var prefixedType = function (prefix) {
|
|
||||||
return function (type) {
|
|
||||||
var expected = prefix;
|
|
||||||
return type.indexOf(expected) === 0;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
/// @param expected type name (string)
|
|
||||||
/// @returns function which checks if type is matching expected one. if yes, returns true, otherwise false
|
|
||||||
var namedType = function (name) {
|
|
||||||
return function (type) {
|
|
||||||
return name === type;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
/// @returns input bytes formatted to int
|
/// @returns input bytes formatted to int
|
||||||
var formatInt = function (value) {
|
var formatInt = function (value) {
|
||||||
return value.length <= 8 ? +parseInt(value, 16) : hexToDec(value);
|
return value.length <= 8 ? +parseInt(value, 16) : hexToDec(value);
|
||||||
@ -187,6 +187,11 @@ var setupOutputTypes = function () {
|
|||||||
|
|
||||||
var outputTypes = setupOutputTypes();
|
var outputTypes = setupOutputTypes();
|
||||||
|
|
||||||
|
/// Formats output bytes back to param list
|
||||||
|
/// @param contract json abi
|
||||||
|
/// @param name of the method that we want to use
|
||||||
|
/// @param bytes representtion of output
|
||||||
|
/// @returns array of output params
|
||||||
var fromAbiOutput = function (json, methodName, output) {
|
var fromAbiOutput = function (json, methodName, output) {
|
||||||
var index = findMethodIndex(json, methodName);
|
var index = findMethodIndex(json, methodName);
|
||||||
|
|
||||||
|
4
dist/ethereum.js.map
vendored
4
dist/ethereum.js.map
vendored
File diff suppressed because one or more lines are too long
2
dist/ethereum.min.js
vendored
2
dist/ethereum.min.js
vendored
File diff suppressed because one or more lines are too long
63
lib/abi.js
63
lib/abi.js
@ -35,6 +35,10 @@ var decToHex = function (dec) {
|
|||||||
return parseInt(dec).toString(16);
|
return parseInt(dec).toString(16);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// Finds first index of array element matching pattern
|
||||||
|
/// @param array
|
||||||
|
/// @param callback pattern
|
||||||
|
/// @returns index of element
|
||||||
var findIndex = function (array, callback) {
|
var findIndex = function (array, callback) {
|
||||||
var end = false;
|
var end = false;
|
||||||
var i = 0;
|
var i = 0;
|
||||||
@ -44,32 +48,40 @@ var findIndex = function (array, callback) {
|
|||||||
return end ? i - 1 : -1;
|
return end ? i - 1 : -1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// @returns a function that is used as a pattern for 'findIndex'
|
||||||
var findMethodIndex = function (json, methodName) {
|
var findMethodIndex = function (json, methodName) {
|
||||||
return findIndex(json, function (method) {
|
return findIndex(json, function (method) {
|
||||||
return method.name === methodName;
|
return method.name === methodName;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// @param string string to be padded
|
||||||
|
/// @param number of characters that result string should have
|
||||||
|
/// @returns right aligned string
|
||||||
var padLeft = function (string, chars) {
|
var padLeft = function (string, chars) {
|
||||||
return new Array(chars - string.length + 1).join("0") + string;
|
return new Array(chars - string.length + 1).join("0") + string;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// @param expected type prefix (string)
|
||||||
|
/// @returns function which checks if type has matching prefix. if yes, returns true, otherwise false
|
||||||
|
var prefixedType = function (prefix) {
|
||||||
|
return function (type) {
|
||||||
|
return type.indexOf(prefix) === 0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
/// @param expected type name (string)
|
||||||
|
/// @returns function which checks if type is matching expected one. if yes, returns true, otherwise false
|
||||||
|
var namedType = function (name) {
|
||||||
|
return function (type) {
|
||||||
|
return name === type;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
/// Setups input formatters for solidity types
|
/// Setups input formatters for solidity types
|
||||||
/// @returns an array of input formatters
|
/// @returns an array of input formatters
|
||||||
var setupInputTypes = function () {
|
var setupInputTypes = function () {
|
||||||
|
|
||||||
var prefixedType = function (prefix) {
|
|
||||||
return function (type, value) {
|
|
||||||
return type.indexOf(prefix) === 0;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
var namedType = function (name, formatter) {
|
|
||||||
return function (type, value) {
|
|
||||||
return type === name;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
var formatInt = function (value) {
|
var formatInt = function (value) {
|
||||||
var padding = 32 * 2;
|
var padding = 32 * 2;
|
||||||
if (typeof value === 'number')
|
if (typeof value === 'number')
|
||||||
@ -105,6 +117,11 @@ var setupInputTypes = function () {
|
|||||||
|
|
||||||
var inputTypes = setupInputTypes();
|
var inputTypes = setupInputTypes();
|
||||||
|
|
||||||
|
/// Formats input params to bytes
|
||||||
|
/// @param contract json abi
|
||||||
|
/// @param name of the method that we want to use
|
||||||
|
/// @param array of params that will be formatted to bytes
|
||||||
|
/// @returns bytes representation of input params
|
||||||
var toAbiInput = function (json, methodName, params) {
|
var toAbiInput = function (json, methodName, params) {
|
||||||
var bytes = "";
|
var bytes = "";
|
||||||
var index = findMethodIndex(json, methodName);
|
var index = findMethodIndex(json, methodName);
|
||||||
@ -135,23 +152,6 @@ var toAbiInput = function (json, methodName, params) {
|
|||||||
/// @returns an array of output formatters
|
/// @returns an array of output formatters
|
||||||
var setupOutputTypes = function () {
|
var setupOutputTypes = function () {
|
||||||
|
|
||||||
/// @param expected type prefix (string)
|
|
||||||
/// @returns function which checks if type has matching prefix. if yes, returns true, otherwise false
|
|
||||||
var prefixedType = function (prefix) {
|
|
||||||
return function (type) {
|
|
||||||
var expected = prefix;
|
|
||||||
return type.indexOf(expected) === 0;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
/// @param expected type name (string)
|
|
||||||
/// @returns function which checks if type is matching expected one. if yes, returns true, otherwise false
|
|
||||||
var namedType = function (name) {
|
|
||||||
return function (type) {
|
|
||||||
return name === type;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
/// @returns input bytes formatted to int
|
/// @returns input bytes formatted to int
|
||||||
var formatInt = function (value) {
|
var formatInt = function (value) {
|
||||||
return value.length <= 8 ? +parseInt(value, 16) : hexToDec(value);
|
return value.length <= 8 ? +parseInt(value, 16) : hexToDec(value);
|
||||||
@ -186,6 +186,11 @@ var setupOutputTypes = function () {
|
|||||||
|
|
||||||
var outputTypes = setupOutputTypes();
|
var outputTypes = setupOutputTypes();
|
||||||
|
|
||||||
|
/// Formats output bytes back to param list
|
||||||
|
/// @param contract json abi
|
||||||
|
/// @param name of the method that we want to use
|
||||||
|
/// @param bytes representtion of output
|
||||||
|
/// @returns array of output params
|
||||||
var fromAbiOutput = function (json, methodName, output) {
|
var fromAbiOutput = function (json, methodName, output) {
|
||||||
var index = findMethodIndex(json, methodName);
|
var index = findMethodIndex(json, methodName);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user