@vechain/connex
Version:
Standard interface to connect DApp with VeChain and user
732 lines (712 loc) • 736 kB
JavaScript
(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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcnVsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0VBQXNFO0FBQ3RFLE1BQU0sVUFBVSxXQUFXLENBQUMsR0FBVztJQUNuQyxPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQzFELENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLEdBQVc7SUFDbkMsT0FBTyxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ2hFLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLEdBQVcsRUFBRSxDQUFVO0lBQzlDLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ3hELE9BQU8sS0FBSyxDQUFBO0tBQ2Y7SUFDRCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO0FBQzlELENBQUM7QUFFRCxNQUFNLFVBQVUsTUFBTSxDQUFDLEdBQVcsRUFBRSxHQUFXO0lBQzNDLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDbkMsT0FBTyxLQUFLLENBQUE7S0FDZjtJQUNELE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsU0FBQSxDQUFDLEVBQUksR0FBRyxDQUFBLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtBQUN0QyxDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxDQUFrQjtJQUN2QyxP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
// 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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