ethereum-web-token
Version:
EWT bundles Ethereum function-calls into [JWT](https://jwt.io/)-like tokens. It simplifies the use of ECDSA signatures for webapps and the development of [Smart Oracles](https://github.com/codius/codius/wiki/Smart-Oracles:-A-Simple,-Powerful-Approach-to-S
55 lines (30 loc) • 2.53 kB
JavaScript
;Object.defineProperty(exports, "__esModule", { value: true });var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);var _createClass2 = require('babel-runtime/helpers/createClass');var _createClass3 = _interopRequireDefault(_createClass2);var _constructor = require('./constructor');var _constructor2 = _interopRequireDefault(_constructor);
var _event = require('./event/event');var _event2 = _interopRequireDefault(_event);
var _function = require('./function');var _function2 = _interopRequireDefault(_function);
var _index = require('../token/index');var _index2 = _interopRequireDefault(_index);function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}var
Interface = function () {
function Interface(abi) {(0, _classCallCheck3.default)(this, Interface);
this._interface = Interface.parseABI(abi);
}(0, _createClass3.default)(Interface, [{ key: 'encodeTokens', value: function encodeTokens(
paramTypes, values) {
var createToken = function createToken(paramType, value) {
if (paramType.subtype) {
return new _index2.default(paramType.type, value.map(function (entry) {return createToken(paramType.subtype, entry);}));
}
return new _index2.default(paramType.type, value);
};
return paramTypes.map(function (paramType, idx) {return createToken(paramType, values[idx]);});
} }, { key: 'interface', get: function get() {return this._interface;} }, { key: 'constructors', get: function get() {return this._interface.filter(function (item) {return item instanceof _constructor2.default;});} }, { key: 'events', get: function get() {return this._interface.filter(function (item) {return item instanceof _event2.default;});} }, { key: 'functions', get: function get() {return this._interface.filter(function (item) {return item instanceof _function2.default;});} }], [{ key: 'parseABI', value: function parseABI(
abi) {
return abi.map(function (item) {
switch (item.type) {
case 'constructor':
return new _constructor2.default(item);
case 'event':
return new _event2.default(item);
case 'function':
return new _function2.default(item);
default:
throw new Error('Unknown ABI type ' + item.type);}
});
} }]);return Interface;}();exports.default = Interface;module.exports = exports['default'];