UNPKG

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
'use strict';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'];