UNPKG

@vechain/connex

Version:

Standard interface to connect DApp with VeChain and user

732 lines (712 loc) 736 kB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(); else if(typeof define === 'function' && define.amd) define([], factory); else { var a = factory(); for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; } })(self, function() { return /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ 280: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, { "Connex": () => /* binding */ ConnexClass, "default": () => /* binding */ esm }); // EXTERNAL MODULE: ../framework/node_modules/@vechain/ethers/utils/abi-coder.js var abi_coder = __webpack_require__(2046); // EXTERNAL MODULE: ../framework/node_modules/js-sha3/src/sha3.js var sha3 = __webpack_require__(747); // CONCATENATED MODULE: ../framework/node_modules/thor-devkit/esm/keccak.js /* provided dependency */ var Buffer = __webpack_require__(8764)["Buffer"]; /** * computes keccak256 hash of given data * @param data one or more Buffer | string */ function keccak256(...data) { const h = sha3.keccak_256.create(); data.forEach(d => { if (Buffer.isBuffer(d)) { h.update(d); } else { h.update(Buffer.from(d, 'utf8')); } }); return Buffer.from(h.digest()); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2VjY2FrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2tlY2Nhay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3BDOzs7R0FHRztBQUNILE1BQU0sVUFBVSxTQUFTLENBQUMsR0FBRyxJQUE0QjtJQUNyRCxNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNiLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNwQixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQ2Q7YUFBTTtZQUNILENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQTtTQUNuQztJQUNMLENBQUMsQ0FBQyxDQUFBO0lBQ0YsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO0FBQ2xDLENBQUMifQ== // CONCATENATED MODULE: ../framework/node_modules/thor-devkit/esm/abi.js /* provided dependency */ var abi_Buffer = __webpack_require__(8764)["Buffer"]; class Coder extends abi_coder.AbiCoder { constructor() { super((type, value) => { if ((type.match(/^u?int/) && !Array.isArray(value) && typeof value !== 'object') || value._ethersType === 'BigNumber') { return value.toString(); } return value; }); } encode(types, values) { try { return super.encode(types, values); } catch (err) { if (err.reason) { throw new Error(err.reason); } throw err; } } decode(types, data) { try { return super.decode(types, data); } catch (err) { if (err.reason) { throw new Error(err.reason); } throw err; } } } const coder = new Coder(); function formatSignature(fragment) { try { return (0,abi_coder.formatSignature)(fragment) .replace(/\(tuple\(/g, '((') .replace(/\,tuple\(/g, ',('); } catch (err) { if (err.reason) { throw new Error(err.reason); } throw err; } } /** encode/decode parameters of contract function call, event log, according to ABI JSON */ var abi; (function (abi) { /** * encode single parameter * @param type type of the parameter * @param value value of the parameter * @returns encoded value in hex string */ function encodeParameter(type, value) { return coder.encode([type], [value]); } abi.encodeParameter = encodeParameter; /** * decode single parameter * @param type type of the parameter * @param data encoded parameter in hex string * @returns decoded value */ function decodeParameter(type, data) { return coder.decode([type], data)[0]; } abi.decodeParameter = decodeParameter; /** * encode a group of parameters * @param types type array * @param values value array * @returns encoded values in hex string */ function encodeParameters(types, values) { return coder.encode(types, values); } abi.encodeParameters = encodeParameters; /** * decode a group of parameters * @param types type array * @param data encoded values in hex string * @returns decoded object */ function decodeParameters(types, data) { const result = coder.decode(types, data); const decoded = {}; types.forEach((t, i) => { decoded[i] = result[i]; if (t.name) { decoded[t.name] = result[i]; } }); return decoded; } abi.decodeParameters = decodeParameters; /** for contract function */ class Function { /** * create a function object * @param definition abi definition of the function */ constructor(definition) { this.definition = definition; this.canonicalName = formatSignature(definition); this.signature = '0x' + keccak256(this.canonicalName).slice(0, 4).toString('hex'); } /** * encode input parameters into call data * @param args arguments for the function */ encode(...args) { return this.signature + encodeParameters(this.definition.inputs, args).slice(2); } /** * decode output data * @param outputData output data to decode */ decode(outputData) { return decodeParameters(this.definition.outputs, outputData); } } abi.Function = Function; /** for contract event */ class Event { /** for contract event */ constructor(definition) { this.definition = definition; this.canonicalName = formatSignature(definition); this.signature = '0x' + keccak256(this.canonicalName).toString('hex'); } /** * encode an object of indexed keys into topics. * @param indexed an object contains indexed keys */ encode(indexed) { const topics = []; if (!this.definition.anonymous) { topics.push(this.signature); } for (const input of this.definition.inputs) { if (!input.indexed) { continue; } const value = indexed[input.name]; if (value === undefined || value === null) { topics.push(null); } else { let topic; // https://docs.soliditylang.org/en/v0.8.11/abi-spec.html#encoding-of-indexed-event-parameters if (isValueType(input.type)) { topic = encodeParameter(input.type, value); } else { if (input.type === 'string') { topic = '0x' + keccak256(value).toString('hex'); } else if (typeof value === 'string' && /^0x[0-9a-f]+$/i.test(value) && value.length % 2 === 0) { // value is encoded topic = '0x' + keccak256(abi_Buffer.from(value.slice(2), 'hex')).toString('hex'); } else { throw new Error(`event.encode: invalid ${input.type} value`); } } topics.push(topic); } } return topics; } /** * decode event log * @param data data in event output * @param topics topics in event */ decode(data, topics) { if (!this.definition.anonymous) { topics = topics.slice(1); } if (this.definition.inputs.filter(t => t.indexed).length !== topics.length) { throw new Error('invalid topics count'); } const decodedNonIndexed = coder.decode(this.definition.inputs.filter(t => !t.indexed), data); const decoded = {}; this.definition.inputs.forEach((t, i) => { if (t.indexed) { const topic = topics.shift(); decoded[i] = isValueType(t.type) ? decodeParameter(t.type, topic) : topic; } else { decoded[i] = decodedNonIndexed.shift(); } if (t.name) { decoded[t.name] = decoded[i]; } }); return decoded; } } abi.Event = Event; function isValueType(type) { return type === 'address' || type === 'bool' || /^(u?int)([0-9]*)$/.test(type) || /^bytes([0-9]+)$/.test(type); } })(abi || (abi = {})); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FiaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLGVBQWUsSUFBSSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQy9GLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFcEMsTUFBTSxLQUFNLFNBQVEsUUFBUTtJQUN4QjtRQUNJLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDO2dCQUM1RSxLQUFLLENBQUMsV0FBVyxLQUFLLFdBQVcsRUFBRTtnQkFDbkMsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUE7YUFDMUI7WUFDRCxPQUFPLEtBQUssQ0FBQTtRQUNoQixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBMkMsRUFBRSxNQUFhO1FBQ3BFLElBQUk7WUFDQSxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFBO1NBQ3JDO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDVixJQUFJLEdBQUcsQ0FBQyxNQUFNLEVBQUU7Z0JBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7YUFDOUI7WUFDRCxNQUFNLEdBQUcsQ0FBQTtTQUNaO0lBQ0wsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUEyQyxFQUFFLElBQVk7UUFDbkUsSUFBSTtZQUNBLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUE7U0FDbkM7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNWLElB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 // CONCATENATED MODULE: ../framework/esm/revert-reason.js // https://docs.soliditylang.org/en/v0.8.16/control-structures.html#error-handling-assert-require-revert-and-exceptions // builtin errors in solidity, Error(string) and Panic(uint256) const errorSelector = '0x' + keccak256('Error(string)').toString('hex').slice(0, 8); const panicSelector = '0x' + keccak256('Panic(uint256)').toString('hex').slice(0, 8); function decodeRevertReason(data) { try { if (data.startsWith(errorSelector)) { return abi.decodeParameter('string', '0x' + data.slice(errorSelector.length)); } else if (data.startsWith(panicSelector)) { const decoded = abi.decodeParameter('uint256', '0x' + data.slice(panicSelector.length)); return `Panic(0x${parseInt(decoded).toString(16).padStart(2, '0')})`; } return ''; } catch (_a) { return ''; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2ZXJ0LXJlYXNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yZXZlcnQtcmVhc29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRTVDLHVIQUF1SDtBQUN2SCwrREFBK0Q7QUFFL0QsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUNuRixNQUFNLGFBQWEsR0FBRyxJQUFJLEdBQUcsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFFcEYsTUFBTSxVQUFVLGtCQUFrQixDQUFDLElBQVk7SUFDM0MsSUFBSTtRQUNBLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUNoQyxPQUFPLEdBQUcsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBVyxDQUFBO1NBQzFGO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ3ZDLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBVyxDQUFBO1lBQ2pHLE9BQU8sV0FBVyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQTtTQUN2RTtRQUNELE9BQU8sRUFBRSxDQUFBO0tBQ1o7SUFBQyxXQUFNO1FBQ0osT0FBTyxFQUFFLENBQUE7S0FDWjtBQUNMLENBQUMifQ== // EXTERNAL MODULE: ../framework/node_modules/validator-ts/dist/index.js var dist = __webpack_require__(6462); // CONCATENATED MODULE: ../framework/esm/rules.js /* eslint-disable @typescript-eslint/explicit-module-boundary-types */ function isDecString(val) { return typeof val === 'string' && /^[0-9]+$/.test(val); } function isHexString(val) { return typeof val === 'string' && /^0x[0-9a-f]+$/i.test(val); } function isHexBytes(val, n) { if (typeof val !== 'string' || !/^0x[0-9a-f]*$/i.test(val)) { return false; } return n ? val.length === n * 2 + 2 : val.length % 2 === 0; } function isUInt(val, bit) { if (val < 0 || !Number.isInteger(val)) { return false; } return bit ? val < Math.pow(2, bit) : true; } function isBigInt(v) { return typeof v === 'string' ? (isDecString(v) || isHexString(v)) : isUInt(v, 0); } class BadParameter extends Error { constructor(msg) { super(msg); } } BadParameter.prototype.name = 'BadParameter'; function ensure(b, msg) { if (!b) { throw new BadParameter(msg); } } function test(value, scheme, context) { try { return dist/* validate */.Gu(value, scheme, context); } catch (err) { if (err instanceof dist/* ValidationError */.p8) { throw new BadParameter(err.message); } throw err; } } // rules function bytes(v) { return isHexBytes(v) ? '' : 'expected bytes in hex string'; } function bytes8(v) { return isHexBytes(v, 8) ? '' : 'expected bytes8'; } function bytes32(v) { return isHexBytes(v, 32) ? '' : 'expected bytes32'; } function uint8(v) { return isUInt(v, 8) ? '' : 'expected 8-bit unsigned integer'; } function uint32(v) { return isUInt(v, 32) ? '' : 'expected 32-bit unsigned integer'; } function uint64(v) { return isUInt(v, 64) ? '' : 'expected 64-bit unsigned integer'; } function bool(v) { return typeof v === 'boolean' ? '' : 'expected boolean'; } function bigInt(v) { return isBigInt(v) ? '' : 'expected unsigned integer in number or string'; } function hexString(v) { return isHexString(v) ? '' : 'expected integer in hex string'; } function address(v) { return isHexBytes(v, 20) ? '' : 'expected address'; } function string(v) { return typeof v === 'string' ? '' : 'expected string'; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcnVsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0VBQXNFO0FBQ3RFLE1BQU0sVUFBVSxXQUFXLENBQUMsR0FBVztJQUNuQyxPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQzFELENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLEdBQVc7SUFDbkMsT0FBTyxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ2hFLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLEdBQVcsRUFBRSxDQUFVO0lBQzlDLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ3hELE9BQU8sS0FBSyxDQUFBO0tBQ2Y7SUFDRCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO0FBQzlELENBQUM7QUFFRCxNQUFNLFVBQVUsTUFBTSxDQUFDLEdBQVcsRUFBRSxHQUFXO0lBQzNDLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDbkMsT0FBTyxLQUFLLENBQUE7S0FDZjtJQUNELE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsU0FBQSxDQUFDLEVBQUksR0FBRyxDQUFBLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtBQUN0QyxDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxDQUFrQjtJQUN2QyxPQUFPLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDO1FBQzFCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUNwQixDQUFDO0FBRUQsTUFBTSxPQUFPLFlBQWEsU0FBUSxLQUFLO0lBQ25DLFlBQVksR0FBVztRQUNuQixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDZCxDQUFDO0NBQ0o7QUFDRCxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxjQUFjLENBQUE7QUFFNUMsTUFBTSxVQUFVLE1BQU0sQ0FBQyxDQUFVLEVBQUUsR0FBVztJQUMxQyxJQUFJLENBQUMsQ0FBQyxFQUFFO1FBQ0osTUFBTSxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQTtLQUM5QjtBQUNMLENBQUM7QUFFRCxPQUFPLEtBQUssQ0FBQyxNQUFNLGNBQWMsQ0FBQTtBQUVqQyxNQUFNLFVBQVUsSUFBSSxDQUFJLEtBQVEsRUFBRSxNQUFtQixFQUFFLE9BQWU7SUFDbEUsSUFBSTtRQUNBLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFBO0tBQzVDO0lBQUMsT0FBTyxHQUFHLEVBQUU7UUFDVixJQUFJLEdBQUcsWUFBWSxDQUFDLENBQUMsZUFBZSxFQUFFO1lBQ2xDLE1BQU0sSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1NBQ3RDO1FBQ0QsTUFBTSxHQUFHLENBQUE7S0FDWjtBQUNMLENBQUM7QUFFRCxRQUFRO0FBQ1IsTUFBTSxVQUFVLEtBQUssQ0FBQyxDQUFNO0lBQ3hCLE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDhCQUE4QixDQUFBO0FBQzlELENBQUM7QUFDRCxNQUFNLFVBQVUsTUFBTSxDQUFDLENBQU07SUFDekIsT0FBTyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFBO0FBQ3BELENBQUM7QUFDRCxNQUFNLFVBQVUsT0FBTyxDQUFDLENBQU07SUFDMUIsT0FBTyxVQUFVLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFBO0FBQ3RELENBQUM7QUFDRCxNQUFNLFVBQVUsS0FBSyxDQUFDLENBQU07SUFDeEIsT0FBTyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGlDQUFpQyxDQUFBO0FBQ2hFLENBQUM7QUFDRCxNQUFNLFVBQVUsTUFBTSxDQUFDLENBQU07SUFDekIsT0FBTyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtDQUFrQyxDQUFBO0FBQ2xFLENBQUM7QUFDRCxNQUFNLFVBQVUsTUFBTSxDQUFDLENBQU07SUFDekIsT0FBTyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtDQUFrQyxDQUFBO0FBQ2xFLENBQUM7QUFDRCxNQUFNLFVBQVUsSUFBSSxDQUFDLENBQU07SUFDdkIsT0FBTyxPQUFPLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUE7QUFDM0QsQ0FBQztBQUNELE1BQU0sVUFBVSxNQUFNLENBQUMsQ0FBTTtJQUN6QixPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywrQ0FBK0MsQ0FBQTtBQUM3RSxDQUFDO0FBQ0QsTUFBTSxVQUFVLFNBQVMsQ0FBQyxDQUFNO0lBQzVCLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGdDQUFnQyxDQUFBO0FBQ2pFLENBQUM7QUFDRCxNQUFNLFVBQVUsT0FBTyxDQUFDLENBQU07SUFDMUIsT0FBTyxVQUFVLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFBO0FBQ3RELENBQUM7QUFDRCxNQUFNLFVBQVUsTUFBTSxDQUFDLENBQU07SUFDekIsT0FBTyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUE7QUFDekQsQ0FBQyJ9 // CONCATENATED MODULE: ../framework/esm/filter.js const MAX_LIMIT = 256; function newFilter(readyDriver, kind, criteria) { const filterBody = { range: { unit: 'block', from: 0, to: Math.pow(2, 32) - 1 }, options: { offset: 0, limit: 10 }, criteriaSet: criteria, order: 'asc' }; let cacheHints; return { range(range) { test(range, { unit: v => (v === 'block' || v === 'time') ? '' : `expected 'block' or 'time'`, from: uint64, to: uint64 }, 'arg0'); ensure(range.from <= range.to, 'arg0.from: expected <= arg0.to'); filterBody.range = Object.assign({}, range); return this; }, order(order) { ensure(order === 'asc' || order === 'desc', `arg0: expected 'asc' or 'desc'`); filterBody.order = order; return this; }, cache(hints) { cacheHints = test(hints, [address], 'arg0').map(t => t.toLowerCase()); return this; }, apply(offset, limit) { test(offset, uint64, 'arg0'); ensure(limit >= 0 && limit <= MAX_LIMIT && Number.isInteger(limit), `arg1: expected unsigned integer <= ${MAX_LIMIT}`); filterBody.options.offset = offset; filterBody.options.limit = limit; if (kind === 'transfer') { return readyDriver.then(d => d.filterTransferLogs(filterBody, cacheHints)); } else { return readyDriver.then(d => d.filterEventLogs(filterBody, cacheHints)); } } }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssQ0FBQyxNQUFNLFNBQVMsQ0FBQTtBQUU1QixNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUE7QUFFckIsTUFBTSxVQUFVLFNBQVMsQ0FDckIsV0FBbUMsRUFDbkMsSUFBTyxFQUNQLFFBQTBDO0lBRzFDLE1BQU0sVUFBVSxHQUFHO1FBQ2YsS0FBSyxFQUFFO1lBQ0gsSUFBSSxFQUFFLE9BQU87WUFDYixJQUFJLEVBQUUsQ0FBQztZQUNQLEVBQUUsRUFBRSxTQUFBLENBQUMsRUFBSSxFQUFFLENBQUEsR0FBRyxDQUFDO1NBQ2xCO1FBQ0QsT0FBTyxFQUFFO1lBQ0wsTUFBTSxFQUFFLENBQUM7WUFDVCxLQUFLLEVBQUUsRUFBRTtTQUNaO1FBQ0QsV0FBVyxFQUFFLFFBQVE7UUFDckIsS0FBSyxFQUFFLEtBQUs7S0FDZixDQUFBO0lBRUQsSUFBSSxVQUFnQyxDQUFBO0lBRXBDLE9BQU87UUFDSCxLQUFLLENBQUMsS0FBSztZQUNQLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNWLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLE9BQU8sSUFBSSxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsNEJBQTRCO2dCQUM5RSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU07Z0JBQ2QsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNO2FBQ2YsRUFBRSxNQUFNLENBQUMsQ0FBQTtZQUNWLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsRUFBRSxFQUFFLGdDQUFnQyxDQUFDLENBQUE7WUFFbEUsVUFBVSxDQUFDLEtBQUsscUJBQVEsS0FBSyxDQUFFLENBQUE7WUFDL0IsT0FBTyxJQUFJLENBQUE7UUFDZixDQUFDO1FBQ0QsS0FBSyxDQUFDLEtBQUs7WUFDUCxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxLQUFLLElBQUksS0FBSyxLQUFLLE1BQU0sRUFDeEMsZ0NBQWdDLENBQUMsQ0FBQTtZQUNyQyxVQUFVLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtZQUN4QixPQUFPLElBQUksQ0FBQTtRQUNmLENBQUM7UUFDRCxLQUFLLENBQUMsS0FBSztZQUNQLFVBQVUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQTtZQUN6RSxPQUFPLElBQUksQ0FBQTtRQUNmLENBQUM7UUFDRCxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUs7WUFDZixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFBO1lBQ2hDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksU0FBUyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQ2hFLHNDQUFzQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1lBRXRELFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtZQUNsQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7WUFFaEMsSUFBSSxJQUFJLEtBQUssVUFBVSxFQUFFO2dCQUNyQixPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsVUFBaUIsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFBO2FBQ3pGO2lCQUFNO2dCQUNILE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsVUFBaUIsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFBO2FBQ3RGO1FBQ0wsQ0FBQztLQUNKLENBQUE7QUFDTCxDQUFDIn0= // EXTERNAL MODULE: ../framework/node_modules/bignumber.js/bignumber.js var bignumber = __webpack_require__(634); var bignumber_default = /*#__PURE__*/__webpack_require__.n(bignumber); // CONCATENATED MODULE: ../framework/esm/vendor.js var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; function newVendor(driver) { return { sign: (kind, msg) => { if (kind === 'tx') { test(msg, [clauseScheme], 'arg1'); return newTxSigningService(Promise.resolve(driver), msg); } else if (kind === 'cert') { test(msg, { purpose: v => (v === 'agreement' || v === 'identification') ? '' : `expected 'agreement' or 'identification'`, payload: { type: v => v === 'text' ? '' : `expected 'text'`, content: string } }, 'arg1'); return newCertSigningService(Promise.resolve(driver), msg); } else { throw new BadParameter(`arg0: expected 'tx' or 'cert'`); } } }; } function newTxSigningService(readyDriver, msg) { const opts = {}; return { signer(addr) { opts.signer = test(addr, address, 'arg0').toLowerCase(); return this; }, gas(gas) { opts.gas = test(gas, uint64, 'arg0'); return this; }, dependsOn(txid) { opts.dependsOn = test(txid, bytes32, 'arg0').toLowerCase(); return this; }, link(url) { opts.link = test(url, string, 'arg0'); return this; }, comment(text) { opts.comment = test(text, string, 'arg0'); return this; }, delegate(url, signer) { ensure(typeof url === 'string', `arg0: expected url string`); test(signer, dist/* optional */.jt(address), 'arg1'); opts.delegator = { url, signer: signer && signer.toLowerCase() }; return this; }, accepted(cb) { ensure(typeof cb === 'function', 'arg0: expected function'); opts.onAccepted = cb; return this; }, request() { const transformedMsg = msg.map(c => (Object.assign(Object.assign({}, c), { value: new (bignumber_default())(c.value).toString(10) }))); return (() => __awaiter(this, void 0, void 0, function* () { try { const driver = yield readyDriver; return yield driver.signTx(transformedMsg, opts); } catch (err) { throw new Rejected(err.message); } }))(); } }; } function newCertSigningService(readyDriver, msg) { const opts = {}; return { signer(addr) { opts.signer = test(addr, address, 'arg0').toLowerCase(); return this; }, link(url) { opts.link = test(url, string, 'arg0'); return this; }, accepted(cb) { ensure(typeof cb === 'function', 'arg0: expected function'); opts.onAccepted = cb; return this; }, request() { return (() => __awaiter(this, void 0, void 0, function* () { try { const driver = yield readyDriver; return yield driver.signCert(msg, opts); } catch (err) { throw new Rejected(err.message); } }))(); } }; } class Rejected extends Error { constructor(msg) { super(msg); } } Rejected.prototype.name = 'Rejected'; const clauseScheme = { to: dist/* nullable */.AG(address), value: bigInt, data: dist/* optional */.jt(bytes), comment: dist/* optional */.jt(string), abi: dist/* optional */.jt(v => { if (!(v instanceof Object)) { return 'expected object'; } try { new abi.Function(v).signature; return ''; } catch (err) { return `expected valid ABI (${err.message})`; } }) }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVuZG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3ZlbmRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUssQ0FBQyxNQUFNLFNBQVMsQ0FBQTtBQUM1QixPQUFPLEtBQUssQ0FBQyxNQUFNLGNBQWMsQ0FBQTtBQUNqQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ2pDLE9BQU8sU0FBUyxNQUFNLGNBQWMsQ0FBQTtBQUVwQyxNQUFNLFVBQVUsU0FBUyxDQUFDLE1BQXFCO0lBQzNDLE9BQU87UUFDSCxJQUFJLEVBQUUsQ0FBMEIsSUFBTyxFQUFFLEdBQXlFLEVBQU8sRUFBRTtZQUN2SCxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7Z0JBQ2YsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUE4QixFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUE7Z0JBQzlELE9BQU8sbUJBQW1CLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUE4QixDQUFDLENBQUE7YUFDdEY7aUJBQU0sSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFO2dCQUN4QixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQWdDLEVBQUU7b0JBQ3JDLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLFdBQVcsSUFBSSxDQUFDLEtBQUssZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO3dCQUN6RCxFQUFFLENBQUMsQ0FBQyxDQUFDLDBDQUEwQztvQkFDbkQsT0FBTyxFQUFFO3dCQUNMLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUJBQWlCO3dCQUNoRCxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU07cUJBQ3BCO2lCQUNKLEVBQUUsTUFBTSxDQUFDLENBQUE7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 // CONCATENATED MODULE: ../framework/esm/account-visitor.js function newAccountVisitor(readyDriver, addr) { return { get address() { return addr; }, get: () => { return readyDriver.then(d => d.getAccount(addr, d.head.id)); }, getCode: () => { return readyDriver.then(d => d.getCode(addr, d.head.id)); }, getStorage: key => { key = test(key, bytes32, 'arg0').toLowerCase(); return readyDriver.then(d => d.getStorage(addr, key, d.head.id)); }, method: jsonABI => { let coder; try { coder = new abi.Function(JSON.parse(JSON.stringify(jsonABI))); } catch (err) { throw new BadParameter(`arg0: expected valid ABI (${err.message})`); } return newMethod(readyDriver, addr, coder); }, event: jsonABI => { let coder; try { coder = new abi.Event(JSON.parse(JSON.stringify(jsonABI))); } catch (err) { throw new BadParameter(`arg0: expected valid ABI (${err.message})`); } return newEvent(readyDriver, addr, coder); } }; } function newMethod(readyDriver, addr, coder) { let value = 0; const opts = {}; let cacheHints; return { value(val) { value = test(val, bigInt, 'arg0'); return this; }, caller(addr) { opts.caller = test(addr, address, 'arg0').toLowerCase(); return this; }, gas(gas) { opts.gas = test(gas, uint64, 'arg0'); return this; }, gasPrice(gp) { opts.gasPrice = test(gp, bigInt, 'arg0').toString().toLowerCase(); return this; }, gasPayer(addr) { opts.gasPayer = test(addr, address, 'arg0').toLowerCase(); return this; }, cache(hints) { cacheHints = test(hints, [address], 'arg0').map(t => t.toLowerCase()); return this; }, asClause: (...args) => { const inputsLen = (coder.definition.inputs || []).length; ensure(inputsLen === args.length, `args count expected ${inputsLen}`); try { const data = coder.encode(...args); return { to: addr, value: value.toString().toLowerCase(), data }; } catch (err) { throw new BadParameter(`args can not be encoded (${err.message})`); } }, call(...args) { const clause = this.asClause(...args); return readyDriver.then(d => d.explain(Object.assign({ clauses: [clause] }, opts), d.head.id, cacheHints)) .then(outputs => outputs[0]) .then(output => { if (output.reverted) { const revertReason = decodeRevertReason(output.data); return Object.assign(Object.assign({}, output), { revertReason, decoded: {} }); } else { const decoded = coder.decode(output.data); return Object.assign(Object.assign({}, output), { decoded }); } }); }, transact(...args) { const clause = this.asClause(...args); return newTxSigningService(readyDriver, [Object.assign(Object.assign({}, clause), { abi: coder.definition })]); } }; } function newEvent(readyDriver, addr, coder) { const encode = (indexed) => { const topics = coder.encode(indexed); return { address: addr, topic0: topics[0] || undefined, topic1: topics[1] || undefined, topic2: topics[2] || undefined, topic3: topics[3] || undefined, topic4: topics[4] || undefined }; }; return { asCriteria: indexed => { try { return encode(indexed); } catch (err) { throw new BadParameter(`arg0: can not be encoded (${err.message})`); } }, filter: (indexed) => { test(indexed, [{}], 'arg0'); if (indexed.length === 0) { indexed = [{}]; } const criteria = indexed.map((o, i) => { try { return encode(o); } catch (err) { throw new BadParameter(`arg0.#${i}: can not be encoded (${err.message})`); } }); const filter = newFilter(readyDriver, 'event', criteria); return { range(range) { filter.range(range); return this; }, order(order) { filter.order(order); return this; }, cache(hints) { filter.cache(hints); return this; }, apply(offset, limit) { return filter.apply(offset, limit) .then(events => events.map(event => { const decoded = coder.decode(event.data, event.topics); return Object.assign(Object.assign({}, event), { decoded }); })); } }; } }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC12aXNpdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FjY291bnQtdmlzaXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ2pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDcEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQzlDLE9BQU8sS0FBSyxDQUFDLE1BQU0sU0FBUyxDQUFBO0FBRTVCLE1BQU0sVUFBVSxpQkFBaUIsQ0FDN0IsV0FBbUMsRUFDbkMsSUFBWTtJQUVaLE9BQU87UUFDSCxJQUFJLE9BQU8sS0FBSyxPQUFPLElBQUksQ0FBQSxDQUFDLENBQUM7UUFDN0IsR0FBRyxFQUFFLEdBQUcsRUFBRTtZQUNOLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUMvRCxDQUFDO1FBQ0QsT0FBTyxFQUFFLEdBQUcsRUFBRTtZQUNWLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUM1RCxDQUFDO1FBQ0QsVUFBVSxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQ2QsR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUE7WUFDbEQsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMs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