From 9f8fb7ffab6307228e5d21fbf57e2a5266ba0e8e Mon Sep 17 00:00:00 2001 From: kayseriiovlabs <100873799+kayseriiovlabs@users.noreply.github.com> Date: Mon, 11 Apr 2022 11:16:24 -0400 Subject: [PATCH 01/33] adding proxy EIP1167 validation (#17) * adding proxy EIP1167 validation * adding constants for eip1167 prefix Co-authored-by: Kayseri Martinez Co-authored-by: Kayseri Martinez --- src/index.js | 4 +++- src/lib/Constants.js | 2 ++ src/lib/ContractParser.js | 15 ++++++++++++++- src/lib/types.js | 3 ++- test/ContractParser.spec.js | 11 +++++++++++ test/interfaces.spec.js | 3 ++- 6 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 src/lib/Constants.js diff --git a/src/index.js b/src/index.js index bcf3c36..b92a6ea 100644 --- a/src/index.js +++ b/src/index.js @@ -2,6 +2,8 @@ import { ContractParser } from './lib/ContractParser' import { BcSearch } from './lib/BcSearch' import Contract from './lib/Contract' import bridge from './lib/nativeContracts/bridgeAbi' +import { contractsInterfaces } from './lib/types' const abi = { bridge } -export { ContractParser, BcSearch, Contract, abi } +const types = { contractsInterfaces } +export { ContractParser, BcSearch, Contract, abi, types } export default ContractParser diff --git a/src/lib/Constants.js b/src/lib/Constants.js new file mode 100644 index 0000000..84b961c --- /dev/null +++ b/src/lib/Constants.js @@ -0,0 +1,2 @@ +export const EIP_1167_PREFIX='363d3d373d3d3d363d73'; +export const EIP_1167_SUFFIX='5af43d82803e903d91602b57fd5bf3'; diff --git a/src/lib/ContractParser.js b/src/lib/ContractParser.js index 3161296..10f8173 100755 --- a/src/lib/ContractParser.js +++ b/src/lib/ContractParser.js @@ -13,6 +13,8 @@ import { soliditySelector, soliditySignature } from './utils' +import { remove0x } from '@rsksmart/rsk-utils/dist/strings' +import { EIP_1167_PREFIX, EIP_1167_SUFFIX } from './Constants'; export class ContractParser { constructor ({ abi, log, initConfig, nod3 } = {}) { @@ -160,6 +162,7 @@ export class ContractParser { } let interfaces if (isErc165) interfaces = await this.getInterfacesERC165(contract) + else if (this.isEIP1167(txInputData)) interfaces = { EIP1167: true }; else interfaces = this.getInterfacesByMethods(methods) interfaces = Object.keys(interfaces) .filter(k => interfaces[k] === true) @@ -167,7 +170,17 @@ export class ContractParser { return { methods, interfaces } } - async getInterfacesERC165 (contract) { + getEip1167MasterCopy (bytecode) { + const implementationAddress = bytecode.replace(EIP_1167_PREFIX, '').replace(EIP_1167_SUFFIX, ''); + return implementationAddress; + } + + isEIP1167(bytecode) { + const re = new RegExp(`^${EIP_1167_PREFIX}[a-f0-9]{40}${EIP_1167_SUFFIX}$`, 'i'); + return re.test(remove0x(bytecode)); + } + + async getInterfacesERC165(contract) { let ifaces = {} let keys = Object.keys(interfacesIds) for (let i of keys) { diff --git a/src/lib/types.js b/src/lib/types.js index 12fff35..34425ce 100755 --- a/src/lib/types.js +++ b/src/lib/types.js @@ -18,7 +18,8 @@ export const contractsInterfaces = { ERC20: 'ERC20', ERC677: 'ERC677', ERC165: 'ERC165', - ERC721: 'ERC721' + ERC721: 'ERC721', + EIP1167: 'EIP1167' } const ci = contractsInterfaces diff --git a/test/ContractParser.spec.js b/test/ContractParser.spec.js index 13ff2c8..e8b60de 100644 --- a/test/ContractParser.spec.js +++ b/test/ContractParser.spec.js @@ -5,6 +5,9 @@ import nod3 from '../src/lib/nod3Connect' const contracts = [ '0xebea27d994371cd0cb9896ae4c926bc5221f6317'] +const proxyContract = "0xc7bC8A9523e04CD82cb19f5D95E38d0258EEf810"; +const masterProxyContract = "0x2a37eedf9724f1c748b5cf88594bd1d29612b7f9"; + const parser = new ContractParser({ nod3 }) describe('# Network', function () { @@ -24,4 +27,12 @@ describe('Contract parser', function () { console.log({ info }) }) } + + it('should return the master of proxy contract',async ()=>{ + const code = await nod3.eth.getCode(proxyContract) + //let info = await parser.getContractInfo(code, contract) + const masterCopy = parser.getMasterCopy(code); + assert.equal(masterCopy,masterProxyContract); + //assert.includeMembers(interfaces, addresses[address]) + }); }) diff --git a/test/interfaces.spec.js b/test/interfaces.spec.js index 7a23408..314b4d2 100755 --- a/test/interfaces.spec.js +++ b/test/interfaces.spec.js @@ -23,7 +23,8 @@ const addresses = { '0x4626f072c42afed36d7aad7f2ab9fa9e16bdb72a': ['ERC165', 'ERC721', 'ERC721Enumerable', 'ERC721Metadata'], '0x1e6d0bad215c6407f552e4d1260e7bae90005ab2': ['ERC165', 'ERC721', 'ERC721Enumerable', 'ERC721Metadata'], '0xe59f2877a51e570fbf751a07d50899838e6b6cc7': ['ERC721'], - '0x7974f2971e0b5d68f30513615fafec5c451da4d1': ['ERC20', 'ERC677'] + '0x7974f2971e0b5d68f30513615fafec5c451da4d1': ['ERC20', 'ERC677'], + '0xc7bc8a9523e04cd82cb19f5d95e38d0258eef810': ['EIP1167'] } const parser = new ContractParser({ nod3 }) From c2833715af827fa6b3a718ee9c550b04eeded72c Mon Sep 17 00:00:00 2001 From: kayseriiovlabs <100873799+kayseriiovlabs@users.noreply.github.com> Date: Wed, 1 Jun 2022 10:32:59 -0400 Subject: [PATCH 02/33] changing decodelog implementation (#18) * changing decodeog implementation * fixing pr comments * exporting constants Co-authored-by: Ubuntu --- dist/index.js | 9 +- dist/lib/Constants.js | 2 + dist/lib/ContractParser.js | 15 +- dist/lib/EventDecoder.js | 42 +- dist/lib/NativeContracts.js | 39 -- dist/lib/NativeContractsEvents.js | 213 --------- .../nativeContracts/NativeContractsEvents.js | 0 dist/lib/types.js | 3 +- package-lock.json | 439 ++++++++++++++++++ package.json | 3 +- src/index.js | 3 +- src/lib/EventDecoder.js | 40 +- 12 files changed, 526 insertions(+), 282 deletions(-) create mode 100644 dist/lib/Constants.js delete mode 100644 dist/lib/NativeContracts.js delete mode 100755 dist/lib/NativeContractsEvents.js mode change 100644 => 100755 dist/lib/nativeContracts/NativeContractsEvents.js diff --git a/dist/index.js b/dist/index.js index cf1ff87..9b9dad2 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,7 +1,10 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });Object.defineProperty(exports, "ContractParser", { enumerable: true, get: function () {return _ContractParser.ContractParser;} });Object.defineProperty(exports, "BcSearch", { enumerable: true, get: function () {return _BcSearch.BcSearch;} });Object.defineProperty(exports, "Contract", { enumerable: true, get: function () {return _Contract.default;} });exports.default = exports.abi = void 0;var _ContractParser = require("./lib/ContractParser"); +"use strict";Object.defineProperty(exports, "__esModule", { value: true });Object.defineProperty(exports, "ContractParser", { enumerable: true, get: function () {return _ContractParser.ContractParser;} });Object.defineProperty(exports, "BcSearch", { enumerable: true, get: function () {return _BcSearch.BcSearch;} });Object.defineProperty(exports, "Contract", { enumerable: true, get: function () {return _Contract.default;} });exports.Constants = exports.default = exports.types = exports.abi = void 0;var _ContractParser = require("./lib/ContractParser"); var _BcSearch = require("./lib/BcSearch"); var _Contract = _interopRequireDefault(require("./lib/Contract")); -var _bridgeAbi = _interopRequireDefault(require("./lib/nativeContracts/bridgeAbi"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} -const abi = { bridge: _bridgeAbi.default };exports.abi = abi;var _default = +var _bridgeAbi = _interopRequireDefault(require("./lib/nativeContracts/bridgeAbi")); +var _types = require("./lib/types"); +var Constants = _interopRequireWildcard(require("./lib/Constants"));exports.Constants = Constants;function _getRequireWildcardCache() {if (typeof WeakMap !== "function") return null;var cache = new WeakMap();_getRequireWildcardCache = function () {return cache;};return cache;}function _interopRequireWildcard(obj) {if (obj && obj.__esModule) {return obj;}if (obj === null || typeof obj !== "object" && typeof obj !== "function") {return { default: obj };}var cache = _getRequireWildcardCache();if (cache && cache.has(obj)) {return cache.get(obj);}var newObj = {};var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var key in obj) {if (Object.prototype.hasOwnProperty.call(obj, key)) {var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;if (desc && (desc.get || desc.set)) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}newObj.default = obj;if (cache) {cache.set(obj, newObj);}return newObj;}function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} +const abi = { bridge: _bridgeAbi.default };exports.abi = abi; +const types = { contractsInterfaces: _types.contractsInterfaces };exports.types = types;var _default = _ContractParser.ContractParser;exports.default = _default; \ No newline at end of file diff --git a/dist/lib/Constants.js b/dist/lib/Constants.js new file mode 100644 index 0000000..014fc72 --- /dev/null +++ b/dist/lib/Constants.js @@ -0,0 +1,2 @@ +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.EIP_1167_SUFFIX = exports.EIP_1167_PREFIX = void 0;const EIP_1167_PREFIX = '363d3d373d3d3d363d73';exports.EIP_1167_PREFIX = EIP_1167_PREFIX; +const EIP_1167_SUFFIX = '5af43d82803e903d91602b57fd5bf3';exports.EIP_1167_SUFFIX = EIP_1167_SUFFIX; \ No newline at end of file diff --git a/dist/lib/ContractParser.js b/dist/lib/ContractParser.js index cc9d9c5..25c1649 100755 --- a/dist/lib/ContractParser.js +++ b/dist/lib/ContractParser.js @@ -6,13 +6,15 @@ var _Contract = _interopRequireDefault(require("./Contract")); var _EventDecoder = _interopRequireDefault(require("./EventDecoder")); var _Abi = _interopRequireDefault(require("./Abi")); var _types = require("./types"); -var _utils = require("./utils");function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} +var _utils = require("./utils"); +var _strings = require("@rsksmart/rsk-utils/dist/strings"); +var _Constants = require("./Constants");function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} class ContractParser { constructor({ abi, log, initConfig, nod3 } = {}) { @@ -160,6 +162,7 @@ class ContractParser { } let interfaces; if (isErc165) interfaces = await this.getInterfacesERC165(contract);else + if (this.isEIP1167(txInputData)) interfaces = { EIP1167: true };else interfaces = this.getInterfacesByMethods(methods); interfaces = Object.keys(interfaces). filter(k => interfaces[k] === true). @@ -167,6 +170,16 @@ class ContractParser { return { methods, interfaces }; } + getEip1167MasterCopy(bytecode) { + const implementationAddress = bytecode.replace(_Constants.EIP_1167_PREFIX, '').replace(_Constants.EIP_1167_SUFFIX, ''); + return implementationAddress; + } + + isEIP1167(bytecode) { + const re = new RegExp(`^${_Constants.EIP_1167_PREFIX}[a-f0-9]{40}${_Constants.EIP_1167_SUFFIX}$`, 'i'); + return re.test((0, _strings.remove0x)(bytecode)); + } + async getInterfacesERC165(contract) { let ifaces = {}; let keys = Object.keys(_interfacesIds.default); diff --git a/dist/lib/EventDecoder.js b/dist/lib/EventDecoder.js index deeca77..a207b19 100755 --- a/dist/lib/EventDecoder.js +++ b/dist/lib/EventDecoder.js @@ -1,10 +1,17 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _ethereumjsAbi = _interopRequireDefault(require("ethereumjs-abi")); -var _utils = require("./utils"); -var _rskUtils = require("@rsksmart/rsk-utils");function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _utils = require("./utils"); +var _rskUtils = require("@rsksmart/rsk-utils"); +var _web3EthAbi = _interopRequireDefault(require("web3-eth-abi"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} function EventDecoder(abi) { abi = (0, _utils.addSignatureDataToAbi)(abi); + const rawDecode = (types, data) => { + const decoded = _web3EthAbi.default.decodeParameters(types, data); + delete decoded['__length__']; + const arrDecoded = Object.keys(decoded).map(key => decoded[key]); + return arrDecoded; + }; + const formatDecoded = decoded => { return (0, _rskUtils.add0x)(Buffer.isBuffer(decoded) ? (0, _rskUtils.bufferToHex)(decoded) : decoded.toString(16)); }; @@ -22,20 +29,31 @@ function EventDecoder(abi) { }; const decodeElement = (data, types) => { - let decoded = _ethereumjsAbi.default.rawDecode(types, (0, _rskUtils.toBuffer)(data)); - if (Array.isArray(decoded)) { - decoded = decoded.map(d => formatDecoded(d)); - if (decoded.length === 1) decoded = decoded.join(); - } else { - decoded = formatDecoded(decoded); + try { + let decoded = rawDecode(types, data); + if (Array.isArray(decoded)) { + decoded = decoded.map(d => formatDecoded(d)); + if (decoded.length === 1) decoded = decoded.join(); + } else { + decoded = formatDecoded(decoded); + } + return decoded; + } catch (e) { + console.log(e); + return ''; } - return decoded; }; const decodeData = (data, types) => { - let decoded = _ethereumjsAbi.default.rawDecode(types, (0, _rskUtils.toBuffer)(data)); - return decoded.map(d => formatDecoded(d)); + try { + let decoded = rawDecode(types, data); + return decoded.map(d => formatDecoded(d)); + } catch (e) { + console.log(e); + return ['']; + } }; + const decodeLog = log => { log = Object.assign({}, log); const { eventABI, topics } = getEventAbi(log.topics); diff --git a/dist/lib/NativeContracts.js b/dist/lib/NativeContracts.js deleted file mode 100644 index 36f8a08..0000000 --- a/dist/lib/NativeContracts.js +++ /dev/null @@ -1,39 +0,0 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.NativeContracts = NativeContracts;exports.default = exports.parseNativeContracts = exports.defaultNativeContracts = void 0; -var _rskUtils = require("rsk-utils"); - -const defaultNativeContracts = { - bridge: '0x0000000000000000000000000000000001000006', - remasc: '0x0000000000000000000000000000000001000008' };exports.defaultNativeContracts = defaultNativeContracts; - - -const parseNativeContracts = nativeContracts => { - if (typeof nativeContracts !== 'object') throw new TypeError(`nativeContracts must be an object`); - if (Object.keys(nativeContracts) < 1) throw new Error(`Empty native contracts list`); - for (let name in nativeContracts) { - let address = nativeContracts[name]; - if (!(0, _rskUtils.isAddress)(address)) throw new Error(`Address of ${name} is not an address`); - nativeContracts[name] = address.toLowerCase(); - } - return nativeContracts; -};exports.parseNativeContracts = parseNativeContracts; - -function NativeContracts({ nativeContracts } = {}) { - nativeContracts = parseNativeContracts(nativeContracts || defaultNativeContracts); - const names = Object.keys(nativeContracts); - - const getNativeContractAddress = contractName => { - return nativeContracts[contractName]; - }; - const getNativeContractName = address => { - address = address.toLowerCase(); - return names.find(name => nativeContracts[name] === address); - }; - - const isNativeContract = address => !!getNativeContractName(address); - - const list = () => nativeContracts; - - return Object.freeze({ getNativeContractAddress, getNativeContractName, isNativeContract, list }); -}var _default = - -NativeContracts;exports.default = _default; \ No newline at end of file diff --git a/dist/lib/NativeContractsEvents.js b/dist/lib/NativeContractsEvents.js deleted file mode 100755 index b2171d0..0000000 --- a/dist/lib/NativeContractsEvents.js +++ /dev/null @@ -1,213 +0,0 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.NativeContractsEvents = NativeContractsEvents;exports.default = void 0;var _rskUtils = require("rsk-utils"); -var btcUtils = _interopRequireWildcard(require("./btcUtils")); -var _utils = require("./utils");function _getRequireWildcardCache() {if (typeof WeakMap !== "function") return null;var cache = new WeakMap();_getRequireWildcardCache = function () {return cache;};return cache;}function _interopRequireWildcard(obj) {if (obj && obj.__esModule) {return obj;}if (obj === null || typeof obj !== "object" && typeof obj !== "function") {return { default: obj };}var cache = _getRequireWildcardCache();if (cache && cache.has(obj)) {return cache.get(obj);}var newObj = {};var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var key in obj) {if (Object.prototype.hasOwnProperty.call(obj, key)) {var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;if (desc && (desc.get || desc.set)) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}newObj.default = obj;if (cache) {cache.set(obj, newObj);}return newObj;} - -function NativeContractsEvents({ bitcoinNetwork } = {}) { - const network = bitcoinNetwork || 'testnet'; - const decodeAddress = address => { - address = Buffer.from((0, _rskUtils.remove0x)(address), 'hex'); - return (0, _rskUtils.add0x)(address.toString('hex').slice(-40)); - }; - - const decodeEventName = name => { - return Buffer.from((0, _rskUtils.remove0x)(name), 'hex').toString('ascii').replace(/\0/g, ''); - }; - - const removeEmptyStartBytes = d => { - d = !Buffer.isBuffer(d) ? Buffer.from(d, 'hex') : d; - return d.slice(d.findIndex(x => x > 0)); - }; - - const decodeData = data => { - let decoded = _rskUtils.rlp.decode(data); - if (!Array.isArray(decoded)) decoded = [decoded]; - return decoded.map(d => (0, _rskUtils.add0x)(removeEmptyStartBytes(d).toString('hex'))); - }; - - const decodeBtcTxHash = data => { - if ((0, _rskUtils.remove0x)(data).length === 128) { - let buffer = Buffer.from((0, _rskUtils.remove0x)(data), 'hex'); - data = (0, _rskUtils.add0x)(buffer.toString('ascii')); - } - return data; - }; - const decodeArray = data => data.map(d => Array.isArray(d) ? decodeArray(d) : (0, _rskUtils.add0x)(d.toString('hex'))); - - const decodeFederationData = data => { - let [a160, keys] = data; - let address = btcUtils.h160toAddress(a160, { prefixKey: 'scriptHash', network }).toString('hex'); - keys = keys.map(d => btcUtils.rskAddressFromBtcPublicKey(d.toString('hex'))); - return [address, keys]; - }; - - const commitFederationDecoder = data => { - const decoded = _rskUtils.rlp.decode(data); - let [oldData, newData, block] = decoded; - let [oldFederationAddress, oldFederationMembers] = decodeFederationData(oldData); - let [newFederationAddress, newFederationMembers] = decodeFederationData(newData); - block = block.toString('ascii'); - return [oldFederationAddress, oldFederationMembers, newFederationAddress, newFederationMembers, block]; - }; - const fakeAbi = Object.freeze((0, _utils.addSignatureDataToAbi)([ - { // Remasc events - anonymous: false, - inputs: [ - { - indexed: true, - name: 'to', - type: 'address' }, - - { - indexed: false, - name: 'blockHash', - type: 'string' }, - - { - indexed: false, - name: 'value', - type: 'uint256' }], - - - name: 'mining_fee_topic', - type: 'event' }, - - { // Bridge events - inputs: [ - { - indexed: false, - name: 'btcTxHash', - type: 'string' }, - - { - indexed: false, - name: 'btcTx', // raw tx? - type: 'string' }], - - - name: 'release_btc_topic', - type: 'event' }, - - { - inputs: [ - { - indexed: false, - name: 'sender', - type: 'address' }], - - - name: 'update_collections_topic', - type: 'event' }, - - { - inputs: [ - { - indexed: false, - name: 'btcTxHash', - type: 'string', - _filter: decodeBtcTxHash }, - - { - indexed: false, - name: 'federatorPublicKey', - type: 'string' }, - - { - indexed: false, - name: 'rskTxHash', - type: 'string' }], - - - name: 'add_signature_topic', - type: 'event' }, - - { - inputs: [ - { - indexed: false, - name: 'oldFederationAddress', - type: 'string' }, - - { - indexed: false, - name: 'oldFederationMembers', - type: 'address[]' }, - - { - indexed: false, - name: 'newFederationAddress', - type: 'string' }, - - { - indexed: false, - name: 'newFederationMembers', - type: 'address[]' }, - - { - indexed: false, - name: 'activationBlockNumber', - type: 'string' }], - - - name: 'commit_federation_topic', - type: 'event', - _decoder: commitFederationDecoder }])); - - - - const getEventAbi = eventName => fakeAbi.find(a => a.name === eventName && a.type === 'event'); - - const decodeByType = (type, value) => { - if (type === 'address') return decodeAddress(value); - return value; - }; - - const decodeInput = (input, value) => { - let { type, _filter } = input; - if (_filter && typeof _filter === 'function') { - value = _filter(value); - } - return decodeByType(type, value); - }; - - const removeCustomProperties = obj => { - const res = Object.assign({}, obj); - for (let p in res) { - if (p[0] === '_') delete res[p]; - } - return res; - }; - - const cleanAbi = abi => { - abi = removeCustomProperties(abi); - let { inputs } = abi; - if (Array.isArray(inputs)) abi.inputs = inputs.map(input => removeCustomProperties(input)); - return abi; - }; - - const decodeLog = log => { - let topics = [...log.topics]; - let event = decodeEventName(topics.shift()); - let abi = getEventAbi(event); - if (event && abi) { - const { signature } = (0, _utils.getSignatureDataFromAbi)(abi); - log.event = event; - log.signature = signature; - log.abi = cleanAbi(abi); - log.args = []; - const decoder = abi._decoder || decodeData; - let dataDecoded = decoder(log.data); - if (!Array.isArray(dataDecoded)) dataDecoded = [dataDecoded]; - for (let i in abi.inputs) { - let input = abi.inputs[i]; - let { indexed } = input; - let value = indexed === true ? topics[i] : dataDecoded[i - topics.length]; - let decoded = decodeInput(input, value); - if (decoded) log.args.push(decoded); - } - } - return log; - }; - return Object.freeze({ decodeLog, abi: fakeAbi }); -}var _default = - -NativeContractsEvents;exports.default = _default; \ No newline at end of file diff --git a/dist/lib/nativeContracts/NativeContractsEvents.js b/dist/lib/nativeContracts/NativeContractsEvents.js old mode 100644 new mode 100755 diff --git a/dist/lib/types.js b/dist/lib/types.js index a53b168..b6d2487 100755 --- a/dist/lib/types.js +++ b/dist/lib/types.js @@ -18,7 +18,8 @@ const contractsInterfaces = { ERC20: 'ERC20', ERC677: 'ERC677', ERC165: 'ERC165', - ERC721: 'ERC721' };exports.contractsInterfaces = contractsInterfaces; + ERC721: 'ERC721', + EIP1167: 'EIP1167' };exports.contractsInterfaces = contractsInterfaces; const ci = contractsInterfaces; diff --git a/package-lock.json b/package-lock.json index caa8913..4edd303 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1090,6 +1090,343 @@ "to-fast-properties": "^2.0.0" } }, + "@ethersproject/abi": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz", + "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==", + "requires": { + "@ethersproject/address": "^5.0.4", + "@ethersproject/bignumber": "^5.0.7", + "@ethersproject/bytes": "^5.0.4", + "@ethersproject/constants": "^5.0.4", + "@ethersproject/hash": "^5.0.4", + "@ethersproject/keccak256": "^5.0.3", + "@ethersproject/logger": "^5.0.5", + "@ethersproject/properties": "^5.0.3", + "@ethersproject/strings": "^5.0.4" + } + }, + "@ethersproject/abstract-provider": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.6.1.tgz", + "integrity": "sha512-BxlIgogYJtp1FS8Muvj8YfdClk3unZH0vRMVX791Z9INBNT/kuACZ9GzaY1Y4yFq+YSy6/w4gzj3HCRKrK9hsQ==", + "requires": { + "@ethersproject/bignumber": "^5.6.2", + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/logger": "^5.6.0", + "@ethersproject/networks": "^5.6.3", + "@ethersproject/properties": "^5.6.0", + "@ethersproject/transactions": "^5.6.2", + "@ethersproject/web": "^5.6.1" + }, + "dependencies": { + "@ethersproject/address": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.1.tgz", + "integrity": "sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q==", + "requires": { + "@ethersproject/bignumber": "^5.6.2", + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/keccak256": "^5.6.1", + "@ethersproject/logger": "^5.6.0", + "@ethersproject/rlp": "^5.6.1" + } + }, + "@ethersproject/bignumber": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.2.tgz", + "integrity": "sha512-v7+EEUbhGqT3XJ9LMPsKvXYHFc8eHxTowFCG/HgJErmq4XHJ2WR7aeyICg3uTOAQ7Icn0GFHAohXEhxQHq4Ubw==", + "requires": { + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/logger": "^5.6.0", + "bn.js": "^5.2.1" + } + }, + "@ethersproject/constants": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.1.tgz", + "integrity": "sha512-QSq9WVnZbxXYFftrjSjZDUshp6/eKp6qrtdBtUCm0QxCV5z1fG/w3kdlcsjMCQuQHUnAclKoK7XpXMezhRDOLg==", + "requires": { + "@ethersproject/bignumber": "^5.6.2" + } + }, + "@ethersproject/keccak256": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.1.tgz", + "integrity": "sha512-bB7DQHCTRDooZZdL3lk9wpL0+XuG3XLGHLh3cePnybsO3V0rdCAOQGpn/0R3aODmnTOOkCATJiD2hnL+5bwthA==", + "requires": { + "@ethersproject/bytes": "^5.6.1", + "js-sha3": "0.8.0" + } + }, + "@ethersproject/rlp": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.1.tgz", + "integrity": "sha512-uYjmcZx+DKlFUk7a5/W9aQVaoEC7+1MOBgNtvNg13+RnuUwT4F0zTovC0tmay5SmRslb29V1B7Y5KCri46WhuQ==", + "requires": { + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/logger": "^5.6.0" + } + }, + "@ethersproject/signing-key": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.6.2.tgz", + "integrity": "sha512-jVbu0RuP7EFpw82vHcL+GP35+KaNruVAZM90GxgQnGqB6crhBqW/ozBfFvdeImtmb4qPko0uxXjn8l9jpn0cwQ==", + "requires": { + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/logger": "^5.6.0", + "@ethersproject/properties": "^5.6.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "@ethersproject/transactions": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.6.2.tgz", + "integrity": "sha512-BuV63IRPHmJvthNkkt9G70Ullx6AcM+SDc+a8Aw/8Yew6YwT51TcBKEp1P4oOQ/bP25I18JJr7rcFRgFtU9B2Q==", + "requires": { + "@ethersproject/address": "^5.6.1", + "@ethersproject/bignumber": "^5.6.2", + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/constants": "^5.6.1", + "@ethersproject/keccak256": "^5.6.1", + "@ethersproject/logger": "^5.6.0", + "@ethersproject/properties": "^5.6.0", + "@ethersproject/rlp": "^5.6.1", + "@ethersproject/signing-key": "^5.6.2" + } + }, + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + } + } + }, + "@ethersproject/abstract-signer": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.6.2.tgz", + "integrity": "sha512-n1r6lttFBG0t2vNiI3HoWaS/KdOt8xyDjzlP2cuevlWLG6EX0OwcKLyG/Kp/cuwNxdy/ous+R/DEMdTUwWQIjQ==", + "requires": { + "@ethersproject/abstract-provider": "^5.6.1", + "@ethersproject/bignumber": "^5.6.2", + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/logger": "^5.6.0", + "@ethersproject/properties": "^5.6.0" + }, + "dependencies": { + "@ethersproject/bignumber": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.2.tgz", + "integrity": "sha512-v7+EEUbhGqT3XJ9LMPsKvXYHFc8eHxTowFCG/HgJErmq4XHJ2WR7aeyICg3uTOAQ7Icn0GFHAohXEhxQHq4Ubw==", + "requires": { + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/logger": "^5.6.0", + "bn.js": "^5.2.1" + } + }, + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + } + } + }, + "@ethersproject/address": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.0.tgz", + "integrity": "sha512-6nvhYXjbXsHPS+30sHZ+U4VMagFC/9zAk6Gd/h3S21YW4+yfb0WfRtaAIZ4kfM4rrVwqiy284LP0GtL5HXGLxQ==", + "requires": { + "@ethersproject/bignumber": "^5.6.0", + "@ethersproject/bytes": "^5.6.0", + "@ethersproject/keccak256": "^5.6.0", + "@ethersproject/logger": "^5.6.0", + "@ethersproject/rlp": "^5.6.0" + } + }, + "@ethersproject/base64": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.6.1.tgz", + "integrity": "sha512-qB76rjop6a0RIYYMiB4Eh/8n+Hxu2NIZm8S/Q7kNo5pmZfXhHGHmS4MinUainiBC54SCyRnwzL+KZjj8zbsSsw==", + "requires": { + "@ethersproject/bytes": "^5.6.1" + } + }, + "@ethersproject/bignumber": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.0.tgz", + "integrity": "sha512-VziMaXIUHQlHJmkv1dlcd6GY2PmT0khtAqaMctCIDogxkrarMzA9L94KN1NeXqqOfFD6r0sJT3vCTOFSmZ07DA==", + "requires": { + "@ethersproject/bytes": "^5.6.0", + "@ethersproject/logger": "^5.6.0", + "bn.js": "^4.11.9" + } + }, + "@ethersproject/bytes": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.1.tgz", + "integrity": "sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g==", + "requires": { + "@ethersproject/logger": "^5.6.0" + } + }, + "@ethersproject/constants": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.0.tgz", + "integrity": "sha512-SrdaJx2bK0WQl23nSpV/b1aq293Lh0sUaZT/yYKPDKn4tlAbkH96SPJwIhwSwTsoQQZxuh1jnqsKwyymoiBdWA==", + "requires": { + "@ethersproject/bignumber": "^5.6.0" + } + }, + "@ethersproject/hash": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.6.1.tgz", + "integrity": "sha512-L1xAHurbaxG8VVul4ankNX5HgQ8PNCTrnVXEiFnE9xoRnaUcgfD12tZINtDinSllxPLCtGwguQxJ5E6keE84pA==", + "requires": { + "@ethersproject/abstract-signer": "^5.6.2", + "@ethersproject/address": "^5.6.1", + "@ethersproject/bignumber": "^5.6.2", + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/keccak256": "^5.6.1", + "@ethersproject/logger": "^5.6.0", + "@ethersproject/properties": "^5.6.0", + "@ethersproject/strings": "^5.6.1" + }, + "dependencies": { + "@ethersproject/address": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.1.tgz", + "integrity": "sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q==", + "requires": { + "@ethersproject/bignumber": "^5.6.2", + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/keccak256": "^5.6.1", + "@ethersproject/logger": "^5.6.0", + "@ethersproject/rlp": "^5.6.1" + } + }, + "@ethersproject/bignumber": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.2.tgz", + "integrity": "sha512-v7+EEUbhGqT3XJ9LMPsKvXYHFc8eHxTowFCG/HgJErmq4XHJ2WR7aeyICg3uTOAQ7Icn0GFHAohXEhxQHq4Ubw==", + "requires": { + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/logger": "^5.6.0", + "bn.js": "^5.2.1" + } + }, + "@ethersproject/keccak256": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.1.tgz", + "integrity": "sha512-bB7DQHCTRDooZZdL3lk9wpL0+XuG3XLGHLh3cePnybsO3V0rdCAOQGpn/0R3aODmnTOOkCATJiD2hnL+5bwthA==", + "requires": { + "@ethersproject/bytes": "^5.6.1", + "js-sha3": "0.8.0" + } + }, + "@ethersproject/rlp": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.1.tgz", + "integrity": "sha512-uYjmcZx+DKlFUk7a5/W9aQVaoEC7+1MOBgNtvNg13+RnuUwT4F0zTovC0tmay5SmRslb29V1B7Y5KCri46WhuQ==", + "requires": { + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/logger": "^5.6.0" + } + }, + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + } + } + }, + "@ethersproject/keccak256": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.0.tgz", + "integrity": "sha512-tk56BJ96mdj/ksi7HWZVWGjCq0WVl/QvfhFQNeL8fxhBlGoP+L80uDCiQcpJPd+2XxkivS3lwRm3E0CXTfol0w==", + "requires": { + "@ethersproject/bytes": "^5.6.0", + "js-sha3": "0.8.0" + } + }, + "@ethersproject/logger": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.6.0.tgz", + "integrity": "sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg==" + }, + "@ethersproject/networks": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.6.3.tgz", + "integrity": "sha512-QZxRH7cA5Ut9TbXwZFiCyuPchdWi87ZtVNHWZd0R6YFgYtes2jQ3+bsslJ0WdyDe0i6QumqtoYqvY3rrQFRZOQ==", + "requires": { + "@ethersproject/logger": "^5.6.0" + } + }, + "@ethersproject/properties": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.6.0.tgz", + "integrity": "sha512-szoOkHskajKePTJSZ46uHUWWkbv7TzP2ypdEK6jGMqJaEt2sb0jCgfBo0gH0m2HBpRixMuJ6TBRaQCF7a9DoCg==", + "requires": { + "@ethersproject/logger": "^5.6.0" + } + }, + "@ethersproject/rlp": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.0.tgz", + "integrity": "sha512-dz9WR1xpcTL+9DtOT/aDO+YyxSSdO8YIS0jyZwHHSlAmnxA6cKU3TrTd4Xc/bHayctxTgGLYNuVVoiXE4tTq1g==", + "requires": { + "@ethersproject/bytes": "^5.6.0", + "@ethersproject/logger": "^5.6.0" + } + }, + "@ethersproject/strings": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.6.1.tgz", + "integrity": "sha512-2X1Lgk6Jyfg26MUnsHiT456U9ijxKUybz8IM1Vih+NJxYtXhmvKBcHOmvGqpFSVJ0nQ4ZCoIViR8XlRw1v/+Cw==", + "requires": { + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/constants": "^5.6.1", + "@ethersproject/logger": "^5.6.0" + }, + "dependencies": { + "@ethersproject/bignumber": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.2.tgz", + "integrity": "sha512-v7+EEUbhGqT3XJ9LMPsKvXYHFc8eHxTowFCG/HgJErmq4XHJ2WR7aeyICg3uTOAQ7Icn0GFHAohXEhxQHq4Ubw==", + "requires": { + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/logger": "^5.6.0", + "bn.js": "^5.2.1" + } + }, + "@ethersproject/constants": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.1.tgz", + "integrity": "sha512-QSq9WVnZbxXYFftrjSjZDUshp6/eKp6qrtdBtUCm0QxCV5z1fG/w3kdlcsjMCQuQHUnAclKoK7XpXMezhRDOLg==", + "requires": { + "@ethersproject/bignumber": "^5.6.2" + } + }, + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + } + } + }, + "@ethersproject/web": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.6.1.tgz", + "integrity": "sha512-/vSyzaQlNXkO1WV+RneYKqCJwualcUdx/Z3gseVovZP0wIlOFcCE1hkRhKBH8ImKbGQbMl9EAAyJFrJu7V0aqA==", + "requires": { + "@ethersproject/base64": "^5.6.1", + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/logger": "^5.6.0", + "@ethersproject/properties": "^5.6.0", + "@ethersproject/strings": "^5.6.1" + } + }, "@nicolo-ribaudo/chokidar-2": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8.tgz", @@ -2940,6 +3277,14 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, + "ethereum-bloom-filters": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", + "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", + "requires": { + "js-sha3": "^0.8.0" + } + }, "ethereum-cryptography": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", @@ -3006,6 +3351,22 @@ "rlp": "^2.2.3" } }, + "ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", + "requires": { + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + } + } + }, "ethjs-util": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", @@ -3951,6 +4312,11 @@ "dev": true, "optional": true }, + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -4577,6 +4943,22 @@ "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", "dev": true }, + "number-to-bn": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", + "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", + "requires": { + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + } + } + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -6231,6 +6613,11 @@ "dev": true, "optional": true }, + "utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -6292,6 +6679,58 @@ "integrity": "sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==", "dev": true }, + "web3-eth-abi": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.7.3.tgz", + "integrity": "sha512-ZlD8DrJro0ocnbZViZpAoMX44x5aYAb73u2tMq557rMmpiluZNnhcCYF/NnVMy6UIkn7SF/qEA45GXA1ne6Tnw==", + "requires": { + "@ethersproject/abi": "5.0.7", + "web3-utils": "1.7.3" + } + }, + "web3-utils": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.3.tgz", + "integrity": "sha512-g6nQgvb/bUpVUIxJE+ezVN+rYwYmlFyMvMIRSuqpi1dk6ApDD00YNArrk7sPcZnjvxOJ76813Xs2vIN2rgh4lg==", + "requires": { + "bn.js": "^4.11.9", + "ethereum-bloom-filters": "^1.0.6", + "ethereumjs-util": "^7.1.0", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "3.0.0" + }, + "dependencies": { + "@types/bn.js": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", + "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "requires": { + "@types/node": "*" + } + }, + "ethereumjs-util": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz", + "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==", + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "dependencies": { + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + } + } + } + } + }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", diff --git a/package.json b/package.json index cc09835..82ffdaf 100755 --- a/package.json +++ b/package.json @@ -50,6 +50,7 @@ "@rsksmart/rsk-utils": "^1.1.0", "bs58": "^4.0.1", "ethereumjs-abi": "^0.6.8", - "secp256k1": "^3.7.1" + "secp256k1": "^3.7.1", + "web3-eth-abi": "^1.7.3" } } diff --git a/src/index.js b/src/index.js index b92a6ea..c33201a 100644 --- a/src/index.js +++ b/src/index.js @@ -3,7 +3,8 @@ import { BcSearch } from './lib/BcSearch' import Contract from './lib/Contract' import bridge from './lib/nativeContracts/bridgeAbi' import { contractsInterfaces } from './lib/types' +import * as Constants from './lib/Constants'; const abi = { bridge } const types = { contractsInterfaces } -export { ContractParser, BcSearch, Contract, abi, types } +export { ContractParser, BcSearch, Contract, abi, types, Constants } export default ContractParser diff --git a/src/lib/EventDecoder.js b/src/lib/EventDecoder.js index 817343a..8673c75 100755 --- a/src/lib/EventDecoder.js +++ b/src/lib/EventDecoder.js @@ -1,10 +1,17 @@ -import ethAbi from 'ethereumjs-abi' import { addSignatureDataToAbi, getSignatureDataFromAbi } from './utils' -import { remove0x, toBuffer, add0x, bufferToHex } from '@rsksmart/rsk-utils' +import { remove0x, add0x, bufferToHex } from '@rsksmart/rsk-utils' +import Web3EthAbi from 'web3-eth-abi' function EventDecoder (abi) { abi = addSignatureDataToAbi(abi) + const rawDecode = (types,data) =>{ + const decoded = Web3EthAbi.decodeParameters(types,data) + delete decoded['__length__'] + const arrDecoded = Object.keys(decoded).map(key => decoded[key]) + return arrDecoded + } + const formatDecoded = (decoded) => { return add0x(Buffer.isBuffer(decoded) ? bufferToHex(decoded) : decoded.toString(16)) } @@ -22,20 +29,31 @@ function EventDecoder (abi) { } const decodeElement = (data, types) => { - let decoded = ethAbi.rawDecode(types, toBuffer(data)) - if (Array.isArray(decoded)) { - decoded = decoded.map(d => formatDecoded(d)) - if (decoded.length === 1) decoded = decoded.join() - } else { - decoded = formatDecoded(decoded) + try{ + let decoded = rawDecode(types,data) + if (Array.isArray(decoded)) { + decoded = decoded.map(d => formatDecoded(d)) + if (decoded.length === 1) decoded = decoded.join() + } else { + decoded = formatDecoded(decoded) + } + return decoded + }catch(e){ + console.log(e) + return '' } - return decoded } const decodeData = (data, types) => { - let decoded = ethAbi.rawDecode(types, toBuffer(data)) - return decoded.map(d => formatDecoded(d)) + try{ + let decoded = rawDecode(types,data) + return decoded.map(d => formatDecoded(d)) + }catch(e){ + console.log(e) + return [''] + } } + const decodeLog = log => { log = Object.assign({}, log) const { eventABI, topics } = getEventAbi(log.topics) From 034638cb1afc21dda73fca6129330031c2580ff0 Mon Sep 17 00:00:00 2001 From: Ilan Date: Wed, 3 Aug 2022 21:03:00 -0300 Subject: [PATCH 03/33] Revert "changing decodelog implementation (#18)" This reverts commit c2833715af827fa6b3a718ee9c550b04eeded72c. --- dist/index.js | 9 +- dist/lib/Constants.js | 2 - dist/lib/ContractParser.js | 15 +- dist/lib/EventDecoder.js | 42 +- dist/lib/NativeContracts.js | 39 ++ dist/lib/NativeContractsEvents.js | 213 +++++++++ .../nativeContracts/NativeContractsEvents.js | 0 dist/lib/types.js | 3 +- package-lock.json | 439 ------------------ package.json | 3 +- src/index.js | 3 +- src/lib/EventDecoder.js | 40 +- 12 files changed, 282 insertions(+), 526 deletions(-) delete mode 100644 dist/lib/Constants.js create mode 100644 dist/lib/NativeContracts.js create mode 100755 dist/lib/NativeContractsEvents.js mode change 100755 => 100644 dist/lib/nativeContracts/NativeContractsEvents.js diff --git a/dist/index.js b/dist/index.js index 9b9dad2..cf1ff87 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,10 +1,7 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });Object.defineProperty(exports, "ContractParser", { enumerable: true, get: function () {return _ContractParser.ContractParser;} });Object.defineProperty(exports, "BcSearch", { enumerable: true, get: function () {return _BcSearch.BcSearch;} });Object.defineProperty(exports, "Contract", { enumerable: true, get: function () {return _Contract.default;} });exports.Constants = exports.default = exports.types = exports.abi = void 0;var _ContractParser = require("./lib/ContractParser"); +"use strict";Object.defineProperty(exports, "__esModule", { value: true });Object.defineProperty(exports, "ContractParser", { enumerable: true, get: function () {return _ContractParser.ContractParser;} });Object.defineProperty(exports, "BcSearch", { enumerable: true, get: function () {return _BcSearch.BcSearch;} });Object.defineProperty(exports, "Contract", { enumerable: true, get: function () {return _Contract.default;} });exports.default = exports.abi = void 0;var _ContractParser = require("./lib/ContractParser"); var _BcSearch = require("./lib/BcSearch"); var _Contract = _interopRequireDefault(require("./lib/Contract")); -var _bridgeAbi = _interopRequireDefault(require("./lib/nativeContracts/bridgeAbi")); -var _types = require("./lib/types"); -var Constants = _interopRequireWildcard(require("./lib/Constants"));exports.Constants = Constants;function _getRequireWildcardCache() {if (typeof WeakMap !== "function") return null;var cache = new WeakMap();_getRequireWildcardCache = function () {return cache;};return cache;}function _interopRequireWildcard(obj) {if (obj && obj.__esModule) {return obj;}if (obj === null || typeof obj !== "object" && typeof obj !== "function") {return { default: obj };}var cache = _getRequireWildcardCache();if (cache && cache.has(obj)) {return cache.get(obj);}var newObj = {};var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var key in obj) {if (Object.prototype.hasOwnProperty.call(obj, key)) {var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;if (desc && (desc.get || desc.set)) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}newObj.default = obj;if (cache) {cache.set(obj, newObj);}return newObj;}function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} -const abi = { bridge: _bridgeAbi.default };exports.abi = abi; -const types = { contractsInterfaces: _types.contractsInterfaces };exports.types = types;var _default = +var _bridgeAbi = _interopRequireDefault(require("./lib/nativeContracts/bridgeAbi"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} +const abi = { bridge: _bridgeAbi.default };exports.abi = abi;var _default = _ContractParser.ContractParser;exports.default = _default; \ No newline at end of file diff --git a/dist/lib/Constants.js b/dist/lib/Constants.js deleted file mode 100644 index 014fc72..0000000 --- a/dist/lib/Constants.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.EIP_1167_SUFFIX = exports.EIP_1167_PREFIX = void 0;const EIP_1167_PREFIX = '363d3d373d3d3d363d73';exports.EIP_1167_PREFIX = EIP_1167_PREFIX; -const EIP_1167_SUFFIX = '5af43d82803e903d91602b57fd5bf3';exports.EIP_1167_SUFFIX = EIP_1167_SUFFIX; \ No newline at end of file diff --git a/dist/lib/ContractParser.js b/dist/lib/ContractParser.js index 25c1649..cc9d9c5 100755 --- a/dist/lib/ContractParser.js +++ b/dist/lib/ContractParser.js @@ -6,15 +6,13 @@ var _Contract = _interopRequireDefault(require("./Contract")); var _EventDecoder = _interopRequireDefault(require("./EventDecoder")); var _Abi = _interopRequireDefault(require("./Abi")); var _types = require("./types"); -var _utils = require("./utils"); +var _utils = require("./utils");function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} -var _strings = require("@rsksmart/rsk-utils/dist/strings"); -var _Constants = require("./Constants");function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} class ContractParser { constructor({ abi, log, initConfig, nod3 } = {}) { @@ -162,7 +160,6 @@ class ContractParser { } let interfaces; if (isErc165) interfaces = await this.getInterfacesERC165(contract);else - if (this.isEIP1167(txInputData)) interfaces = { EIP1167: true };else interfaces = this.getInterfacesByMethods(methods); interfaces = Object.keys(interfaces). filter(k => interfaces[k] === true). @@ -170,16 +167,6 @@ class ContractParser { return { methods, interfaces }; } - getEip1167MasterCopy(bytecode) { - const implementationAddress = bytecode.replace(_Constants.EIP_1167_PREFIX, '').replace(_Constants.EIP_1167_SUFFIX, ''); - return implementationAddress; - } - - isEIP1167(bytecode) { - const re = new RegExp(`^${_Constants.EIP_1167_PREFIX}[a-f0-9]{40}${_Constants.EIP_1167_SUFFIX}$`, 'i'); - return re.test((0, _strings.remove0x)(bytecode)); - } - async getInterfacesERC165(contract) { let ifaces = {}; let keys = Object.keys(_interfacesIds.default); diff --git a/dist/lib/EventDecoder.js b/dist/lib/EventDecoder.js index a207b19..deeca77 100755 --- a/dist/lib/EventDecoder.js +++ b/dist/lib/EventDecoder.js @@ -1,17 +1,10 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _utils = require("./utils"); -var _rskUtils = require("@rsksmart/rsk-utils"); -var _web3EthAbi = _interopRequireDefault(require("web3-eth-abi"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _ethereumjsAbi = _interopRequireDefault(require("ethereumjs-abi")); +var _utils = require("./utils"); +var _rskUtils = require("@rsksmart/rsk-utils");function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} function EventDecoder(abi) { abi = (0, _utils.addSignatureDataToAbi)(abi); - const rawDecode = (types, data) => { - const decoded = _web3EthAbi.default.decodeParameters(types, data); - delete decoded['__length__']; - const arrDecoded = Object.keys(decoded).map(key => decoded[key]); - return arrDecoded; - }; - const formatDecoded = decoded => { return (0, _rskUtils.add0x)(Buffer.isBuffer(decoded) ? (0, _rskUtils.bufferToHex)(decoded) : decoded.toString(16)); }; @@ -29,31 +22,20 @@ function EventDecoder(abi) { }; const decodeElement = (data, types) => { - try { - let decoded = rawDecode(types, data); - if (Array.isArray(decoded)) { - decoded = decoded.map(d => formatDecoded(d)); - if (decoded.length === 1) decoded = decoded.join(); - } else { - decoded = formatDecoded(decoded); - } - return decoded; - } catch (e) { - console.log(e); - return ''; + let decoded = _ethereumjsAbi.default.rawDecode(types, (0, _rskUtils.toBuffer)(data)); + if (Array.isArray(decoded)) { + decoded = decoded.map(d => formatDecoded(d)); + if (decoded.length === 1) decoded = decoded.join(); + } else { + decoded = formatDecoded(decoded); } + return decoded; }; const decodeData = (data, types) => { - try { - let decoded = rawDecode(types, data); - return decoded.map(d => formatDecoded(d)); - } catch (e) { - console.log(e); - return ['']; - } + let decoded = _ethereumjsAbi.default.rawDecode(types, (0, _rskUtils.toBuffer)(data)); + return decoded.map(d => formatDecoded(d)); }; - const decodeLog = log => { log = Object.assign({}, log); const { eventABI, topics } = getEventAbi(log.topics); diff --git a/dist/lib/NativeContracts.js b/dist/lib/NativeContracts.js new file mode 100644 index 0000000..36f8a08 --- /dev/null +++ b/dist/lib/NativeContracts.js @@ -0,0 +1,39 @@ +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.NativeContracts = NativeContracts;exports.default = exports.parseNativeContracts = exports.defaultNativeContracts = void 0; +var _rskUtils = require("rsk-utils"); + +const defaultNativeContracts = { + bridge: '0x0000000000000000000000000000000001000006', + remasc: '0x0000000000000000000000000000000001000008' };exports.defaultNativeContracts = defaultNativeContracts; + + +const parseNativeContracts = nativeContracts => { + if (typeof nativeContracts !== 'object') throw new TypeError(`nativeContracts must be an object`); + if (Object.keys(nativeContracts) < 1) throw new Error(`Empty native contracts list`); + for (let name in nativeContracts) { + let address = nativeContracts[name]; + if (!(0, _rskUtils.isAddress)(address)) throw new Error(`Address of ${name} is not an address`); + nativeContracts[name] = address.toLowerCase(); + } + return nativeContracts; +};exports.parseNativeContracts = parseNativeContracts; + +function NativeContracts({ nativeContracts } = {}) { + nativeContracts = parseNativeContracts(nativeContracts || defaultNativeContracts); + const names = Object.keys(nativeContracts); + + const getNativeContractAddress = contractName => { + return nativeContracts[contractName]; + }; + const getNativeContractName = address => { + address = address.toLowerCase(); + return names.find(name => nativeContracts[name] === address); + }; + + const isNativeContract = address => !!getNativeContractName(address); + + const list = () => nativeContracts; + + return Object.freeze({ getNativeContractAddress, getNativeContractName, isNativeContract, list }); +}var _default = + +NativeContracts;exports.default = _default; \ No newline at end of file diff --git a/dist/lib/NativeContractsEvents.js b/dist/lib/NativeContractsEvents.js new file mode 100755 index 0000000..b2171d0 --- /dev/null +++ b/dist/lib/NativeContractsEvents.js @@ -0,0 +1,213 @@ +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.NativeContractsEvents = NativeContractsEvents;exports.default = void 0;var _rskUtils = require("rsk-utils"); +var btcUtils = _interopRequireWildcard(require("./btcUtils")); +var _utils = require("./utils");function _getRequireWildcardCache() {if (typeof WeakMap !== "function") return null;var cache = new WeakMap();_getRequireWildcardCache = function () {return cache;};return cache;}function _interopRequireWildcard(obj) {if (obj && obj.__esModule) {return obj;}if (obj === null || typeof obj !== "object" && typeof obj !== "function") {return { default: obj };}var cache = _getRequireWildcardCache();if (cache && cache.has(obj)) {return cache.get(obj);}var newObj = {};var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var key in obj) {if (Object.prototype.hasOwnProperty.call(obj, key)) {var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;if (desc && (desc.get || desc.set)) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}newObj.default = obj;if (cache) {cache.set(obj, newObj);}return newObj;} + +function NativeContractsEvents({ bitcoinNetwork } = {}) { + const network = bitcoinNetwork || 'testnet'; + const decodeAddress = address => { + address = Buffer.from((0, _rskUtils.remove0x)(address), 'hex'); + return (0, _rskUtils.add0x)(address.toString('hex').slice(-40)); + }; + + const decodeEventName = name => { + return Buffer.from((0, _rskUtils.remove0x)(name), 'hex').toString('ascii').replace(/\0/g, ''); + }; + + const removeEmptyStartBytes = d => { + d = !Buffer.isBuffer(d) ? Buffer.from(d, 'hex') : d; + return d.slice(d.findIndex(x => x > 0)); + }; + + const decodeData = data => { + let decoded = _rskUtils.rlp.decode(data); + if (!Array.isArray(decoded)) decoded = [decoded]; + return decoded.map(d => (0, _rskUtils.add0x)(removeEmptyStartBytes(d).toString('hex'))); + }; + + const decodeBtcTxHash = data => { + if ((0, _rskUtils.remove0x)(data).length === 128) { + let buffer = Buffer.from((0, _rskUtils.remove0x)(data), 'hex'); + data = (0, _rskUtils.add0x)(buffer.toString('ascii')); + } + return data; + }; + const decodeArray = data => data.map(d => Array.isArray(d) ? decodeArray(d) : (0, _rskUtils.add0x)(d.toString('hex'))); + + const decodeFederationData = data => { + let [a160, keys] = data; + let address = btcUtils.h160toAddress(a160, { prefixKey: 'scriptHash', network }).toString('hex'); + keys = keys.map(d => btcUtils.rskAddressFromBtcPublicKey(d.toString('hex'))); + return [address, keys]; + }; + + const commitFederationDecoder = data => { + const decoded = _rskUtils.rlp.decode(data); + let [oldData, newData, block] = decoded; + let [oldFederationAddress, oldFederationMembers] = decodeFederationData(oldData); + let [newFederationAddress, newFederationMembers] = decodeFederationData(newData); + block = block.toString('ascii'); + return [oldFederationAddress, oldFederationMembers, newFederationAddress, newFederationMembers, block]; + }; + const fakeAbi = Object.freeze((0, _utils.addSignatureDataToAbi)([ + { // Remasc events + anonymous: false, + inputs: [ + { + indexed: true, + name: 'to', + type: 'address' }, + + { + indexed: false, + name: 'blockHash', + type: 'string' }, + + { + indexed: false, + name: 'value', + type: 'uint256' }], + + + name: 'mining_fee_topic', + type: 'event' }, + + { // Bridge events + inputs: [ + { + indexed: false, + name: 'btcTxHash', + type: 'string' }, + + { + indexed: false, + name: 'btcTx', // raw tx? + type: 'string' }], + + + name: 'release_btc_topic', + type: 'event' }, + + { + inputs: [ + { + indexed: false, + name: 'sender', + type: 'address' }], + + + name: 'update_collections_topic', + type: 'event' }, + + { + inputs: [ + { + indexed: false, + name: 'btcTxHash', + type: 'string', + _filter: decodeBtcTxHash }, + + { + indexed: false, + name: 'federatorPublicKey', + type: 'string' }, + + { + indexed: false, + name: 'rskTxHash', + type: 'string' }], + + + name: 'add_signature_topic', + type: 'event' }, + + { + inputs: [ + { + indexed: false, + name: 'oldFederationAddress', + type: 'string' }, + + { + indexed: false, + name: 'oldFederationMembers', + type: 'address[]' }, + + { + indexed: false, + name: 'newFederationAddress', + type: 'string' }, + + { + indexed: false, + name: 'newFederationMembers', + type: 'address[]' }, + + { + indexed: false, + name: 'activationBlockNumber', + type: 'string' }], + + + name: 'commit_federation_topic', + type: 'event', + _decoder: commitFederationDecoder }])); + + + + const getEventAbi = eventName => fakeAbi.find(a => a.name === eventName && a.type === 'event'); + + const decodeByType = (type, value) => { + if (type === 'address') return decodeAddress(value); + return value; + }; + + const decodeInput = (input, value) => { + let { type, _filter } = input; + if (_filter && typeof _filter === 'function') { + value = _filter(value); + } + return decodeByType(type, value); + }; + + const removeCustomProperties = obj => { + const res = Object.assign({}, obj); + for (let p in res) { + if (p[0] === '_') delete res[p]; + } + return res; + }; + + const cleanAbi = abi => { + abi = removeCustomProperties(abi); + let { inputs } = abi; + if (Array.isArray(inputs)) abi.inputs = inputs.map(input => removeCustomProperties(input)); + return abi; + }; + + const decodeLog = log => { + let topics = [...log.topics]; + let event = decodeEventName(topics.shift()); + let abi = getEventAbi(event); + if (event && abi) { + const { signature } = (0, _utils.getSignatureDataFromAbi)(abi); + log.event = event; + log.signature = signature; + log.abi = cleanAbi(abi); + log.args = []; + const decoder = abi._decoder || decodeData; + let dataDecoded = decoder(log.data); + if (!Array.isArray(dataDecoded)) dataDecoded = [dataDecoded]; + for (let i in abi.inputs) { + let input = abi.inputs[i]; + let { indexed } = input; + let value = indexed === true ? topics[i] : dataDecoded[i - topics.length]; + let decoded = decodeInput(input, value); + if (decoded) log.args.push(decoded); + } + } + return log; + }; + return Object.freeze({ decodeLog, abi: fakeAbi }); +}var _default = + +NativeContractsEvents;exports.default = _default; \ No newline at end of file diff --git a/dist/lib/nativeContracts/NativeContractsEvents.js b/dist/lib/nativeContracts/NativeContractsEvents.js old mode 100755 new mode 100644 diff --git a/dist/lib/types.js b/dist/lib/types.js index b6d2487..a53b168 100755 --- a/dist/lib/types.js +++ b/dist/lib/types.js @@ -18,8 +18,7 @@ const contractsInterfaces = { ERC20: 'ERC20', ERC677: 'ERC677', ERC165: 'ERC165', - ERC721: 'ERC721', - EIP1167: 'EIP1167' };exports.contractsInterfaces = contractsInterfaces; + ERC721: 'ERC721' };exports.contractsInterfaces = contractsInterfaces; const ci = contractsInterfaces; diff --git a/package-lock.json b/package-lock.json index 4edd303..caa8913 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1090,343 +1090,6 @@ "to-fast-properties": "^2.0.0" } }, - "@ethersproject/abi": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz", - "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==", - "requires": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" - } - }, - "@ethersproject/abstract-provider": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.6.1.tgz", - "integrity": "sha512-BxlIgogYJtp1FS8Muvj8YfdClk3unZH0vRMVX791Z9INBNT/kuACZ9GzaY1Y4yFq+YSy6/w4gzj3HCRKrK9hsQ==", - "requires": { - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/networks": "^5.6.3", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/transactions": "^5.6.2", - "@ethersproject/web": "^5.6.1" - }, - "dependencies": { - "@ethersproject/address": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.1.tgz", - "integrity": "sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q==", - "requires": { - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.1" - } - }, - "@ethersproject/bignumber": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.2.tgz", - "integrity": "sha512-v7+EEUbhGqT3XJ9LMPsKvXYHFc8eHxTowFCG/HgJErmq4XHJ2WR7aeyICg3uTOAQ7Icn0GFHAohXEhxQHq4Ubw==", - "requires": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^5.2.1" - } - }, - "@ethersproject/constants": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.1.tgz", - "integrity": "sha512-QSq9WVnZbxXYFftrjSjZDUshp6/eKp6qrtdBtUCm0QxCV5z1fG/w3kdlcsjMCQuQHUnAclKoK7XpXMezhRDOLg==", - "requires": { - "@ethersproject/bignumber": "^5.6.2" - } - }, - "@ethersproject/keccak256": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.1.tgz", - "integrity": "sha512-bB7DQHCTRDooZZdL3lk9wpL0+XuG3XLGHLh3cePnybsO3V0rdCAOQGpn/0R3aODmnTOOkCATJiD2hnL+5bwthA==", - "requires": { - "@ethersproject/bytes": "^5.6.1", - "js-sha3": "0.8.0" - } - }, - "@ethersproject/rlp": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.1.tgz", - "integrity": "sha512-uYjmcZx+DKlFUk7a5/W9aQVaoEC7+1MOBgNtvNg13+RnuUwT4F0zTovC0tmay5SmRslb29V1B7Y5KCri46WhuQ==", - "requires": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/signing-key": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.6.2.tgz", - "integrity": "sha512-jVbu0RuP7EFpw82vHcL+GP35+KaNruVAZM90GxgQnGqB6crhBqW/ozBfFvdeImtmb4qPko0uxXjn8l9jpn0cwQ==", - "requires": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "bn.js": "^5.2.1", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "@ethersproject/transactions": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.6.2.tgz", - "integrity": "sha512-BuV63IRPHmJvthNkkt9G70Ullx6AcM+SDc+a8Aw/8Yew6YwT51TcBKEp1P4oOQ/bP25I18JJr7rcFRgFtU9B2Q==", - "requires": { - "@ethersproject/address": "^5.6.1", - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/constants": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/rlp": "^5.6.1", - "@ethersproject/signing-key": "^5.6.2" - } - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - } - } - }, - "@ethersproject/abstract-signer": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.6.2.tgz", - "integrity": "sha512-n1r6lttFBG0t2vNiI3HoWaS/KdOt8xyDjzlP2cuevlWLG6EX0OwcKLyG/Kp/cuwNxdy/ous+R/DEMdTUwWQIjQ==", - "requires": { - "@ethersproject/abstract-provider": "^5.6.1", - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0" - }, - "dependencies": { - "@ethersproject/bignumber": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.2.tgz", - "integrity": "sha512-v7+EEUbhGqT3XJ9LMPsKvXYHFc8eHxTowFCG/HgJErmq4XHJ2WR7aeyICg3uTOAQ7Icn0GFHAohXEhxQHq4Ubw==", - "requires": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^5.2.1" - } - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - } - } - }, - "@ethersproject/address": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.0.tgz", - "integrity": "sha512-6nvhYXjbXsHPS+30sHZ+U4VMagFC/9zAk6Gd/h3S21YW4+yfb0WfRtaAIZ4kfM4rrVwqiy284LP0GtL5HXGLxQ==", - "requires": { - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/keccak256": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.0" - } - }, - "@ethersproject/base64": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.6.1.tgz", - "integrity": "sha512-qB76rjop6a0RIYYMiB4Eh/8n+Hxu2NIZm8S/Q7kNo5pmZfXhHGHmS4MinUainiBC54SCyRnwzL+KZjj8zbsSsw==", - "requires": { - "@ethersproject/bytes": "^5.6.1" - } - }, - "@ethersproject/bignumber": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.0.tgz", - "integrity": "sha512-VziMaXIUHQlHJmkv1dlcd6GY2PmT0khtAqaMctCIDogxkrarMzA9L94KN1NeXqqOfFD6r0sJT3vCTOFSmZ07DA==", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^4.11.9" - } - }, - "@ethersproject/bytes": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.1.tgz", - "integrity": "sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g==", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/constants": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.0.tgz", - "integrity": "sha512-SrdaJx2bK0WQl23nSpV/b1aq293Lh0sUaZT/yYKPDKn4tlAbkH96SPJwIhwSwTsoQQZxuh1jnqsKwyymoiBdWA==", - "requires": { - "@ethersproject/bignumber": "^5.6.0" - } - }, - "@ethersproject/hash": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.6.1.tgz", - "integrity": "sha512-L1xAHurbaxG8VVul4ankNX5HgQ8PNCTrnVXEiFnE9xoRnaUcgfD12tZINtDinSllxPLCtGwguQxJ5E6keE84pA==", - "requires": { - "@ethersproject/abstract-signer": "^5.6.2", - "@ethersproject/address": "^5.6.1", - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.1" - }, - "dependencies": { - "@ethersproject/address": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.1.tgz", - "integrity": "sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q==", - "requires": { - "@ethersproject/bignumber": "^5.6.2", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/rlp": "^5.6.1" - } - }, - "@ethersproject/bignumber": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.2.tgz", - "integrity": "sha512-v7+EEUbhGqT3XJ9LMPsKvXYHFc8eHxTowFCG/HgJErmq4XHJ2WR7aeyICg3uTOAQ7Icn0GFHAohXEhxQHq4Ubw==", - "requires": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^5.2.1" - } - }, - "@ethersproject/keccak256": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.1.tgz", - "integrity": "sha512-bB7DQHCTRDooZZdL3lk9wpL0+XuG3XLGHLh3cePnybsO3V0rdCAOQGpn/0R3aODmnTOOkCATJiD2hnL+5bwthA==", - "requires": { - "@ethersproject/bytes": "^5.6.1", - "js-sha3": "0.8.0" - } - }, - "@ethersproject/rlp": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.1.tgz", - "integrity": "sha512-uYjmcZx+DKlFUk7a5/W9aQVaoEC7+1MOBgNtvNg13+RnuUwT4F0zTovC0tmay5SmRslb29V1B7Y5KCri46WhuQ==", - "requires": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0" - } - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - } - } - }, - "@ethersproject/keccak256": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.0.tgz", - "integrity": "sha512-tk56BJ96mdj/ksi7HWZVWGjCq0WVl/QvfhFQNeL8fxhBlGoP+L80uDCiQcpJPd+2XxkivS3lwRm3E0CXTfol0w==", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "js-sha3": "0.8.0" - } - }, - "@ethersproject/logger": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.6.0.tgz", - "integrity": "sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg==" - }, - "@ethersproject/networks": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.6.3.tgz", - "integrity": "sha512-QZxRH7cA5Ut9TbXwZFiCyuPchdWi87ZtVNHWZd0R6YFgYtes2jQ3+bsslJ0WdyDe0i6QumqtoYqvY3rrQFRZOQ==", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/properties": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.6.0.tgz", - "integrity": "sha512-szoOkHskajKePTJSZ46uHUWWkbv7TzP2ypdEK6jGMqJaEt2sb0jCgfBo0gH0m2HBpRixMuJ6TBRaQCF7a9DoCg==", - "requires": { - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/rlp": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.0.tgz", - "integrity": "sha512-dz9WR1xpcTL+9DtOT/aDO+YyxSSdO8YIS0jyZwHHSlAmnxA6cKU3TrTd4Xc/bHayctxTgGLYNuVVoiXE4tTq1g==", - "requires": { - "@ethersproject/bytes": "^5.6.0", - "@ethersproject/logger": "^5.6.0" - } - }, - "@ethersproject/strings": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.6.1.tgz", - "integrity": "sha512-2X1Lgk6Jyfg26MUnsHiT456U9ijxKUybz8IM1Vih+NJxYtXhmvKBcHOmvGqpFSVJ0nQ4ZCoIViR8XlRw1v/+Cw==", - "requires": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/constants": "^5.6.1", - "@ethersproject/logger": "^5.6.0" - }, - "dependencies": { - "@ethersproject/bignumber": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.2.tgz", - "integrity": "sha512-v7+EEUbhGqT3XJ9LMPsKvXYHFc8eHxTowFCG/HgJErmq4XHJ2WR7aeyICg3uTOAQ7Icn0GFHAohXEhxQHq4Ubw==", - "requires": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "bn.js": "^5.2.1" - } - }, - "@ethersproject/constants": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.1.tgz", - "integrity": "sha512-QSq9WVnZbxXYFftrjSjZDUshp6/eKp6qrtdBtUCm0QxCV5z1fG/w3kdlcsjMCQuQHUnAclKoK7XpXMezhRDOLg==", - "requires": { - "@ethersproject/bignumber": "^5.6.2" - } - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - } - } - }, - "@ethersproject/web": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.6.1.tgz", - "integrity": "sha512-/vSyzaQlNXkO1WV+RneYKqCJwualcUdx/Z3gseVovZP0wIlOFcCE1hkRhKBH8ImKbGQbMl9EAAyJFrJu7V0aqA==", - "requires": { - "@ethersproject/base64": "^5.6.1", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/logger": "^5.6.0", - "@ethersproject/properties": "^5.6.0", - "@ethersproject/strings": "^5.6.1" - } - }, "@nicolo-ribaudo/chokidar-2": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8.tgz", @@ -3277,14 +2940,6 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, - "ethereum-bloom-filters": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", - "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", - "requires": { - "js-sha3": "^0.8.0" - } - }, "ethereum-cryptography": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", @@ -3351,22 +3006,6 @@ "rlp": "^2.2.3" } }, - "ethjs-unit": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", - "requires": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" - } - } - }, "ethjs-util": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", @@ -4312,11 +3951,6 @@ "dev": true, "optional": true }, - "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -4943,22 +4577,6 @@ "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", "dev": true }, - "number-to-bn": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", - "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", - "requires": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" - } - } - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -6613,11 +6231,6 @@ "dev": true, "optional": true }, - "utf8": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", - "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -6679,58 +6292,6 @@ "integrity": "sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==", "dev": true }, - "web3-eth-abi": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.7.3.tgz", - "integrity": "sha512-ZlD8DrJro0ocnbZViZpAoMX44x5aYAb73u2tMq557rMmpiluZNnhcCYF/NnVMy6UIkn7SF/qEA45GXA1ne6Tnw==", - "requires": { - "@ethersproject/abi": "5.0.7", - "web3-utils": "1.7.3" - } - }, - "web3-utils": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.3.tgz", - "integrity": "sha512-g6nQgvb/bUpVUIxJE+ezVN+rYwYmlFyMvMIRSuqpi1dk6ApDD00YNArrk7sPcZnjvxOJ76813Xs2vIN2rgh4lg==", - "requires": { - "bn.js": "^4.11.9", - "ethereum-bloom-filters": "^1.0.6", - "ethereumjs-util": "^7.1.0", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "dependencies": { - "@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", - "requires": { - "@types/node": "*" - } - }, - "ethereumjs-util": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz", - "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==", - "requires": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "dependencies": { - "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - } - } - } - } - }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", diff --git a/package.json b/package.json index 82ffdaf..cc09835 100755 --- a/package.json +++ b/package.json @@ -50,7 +50,6 @@ "@rsksmart/rsk-utils": "^1.1.0", "bs58": "^4.0.1", "ethereumjs-abi": "^0.6.8", - "secp256k1": "^3.7.1", - "web3-eth-abi": "^1.7.3" + "secp256k1": "^3.7.1" } } diff --git a/src/index.js b/src/index.js index c33201a..b92a6ea 100644 --- a/src/index.js +++ b/src/index.js @@ -3,8 +3,7 @@ import { BcSearch } from './lib/BcSearch' import Contract from './lib/Contract' import bridge from './lib/nativeContracts/bridgeAbi' import { contractsInterfaces } from './lib/types' -import * as Constants from './lib/Constants'; const abi = { bridge } const types = { contractsInterfaces } -export { ContractParser, BcSearch, Contract, abi, types, Constants } +export { ContractParser, BcSearch, Contract, abi, types } export default ContractParser diff --git a/src/lib/EventDecoder.js b/src/lib/EventDecoder.js index 8673c75..817343a 100755 --- a/src/lib/EventDecoder.js +++ b/src/lib/EventDecoder.js @@ -1,17 +1,10 @@ +import ethAbi from 'ethereumjs-abi' import { addSignatureDataToAbi, getSignatureDataFromAbi } from './utils' -import { remove0x, add0x, bufferToHex } from '@rsksmart/rsk-utils' -import Web3EthAbi from 'web3-eth-abi' +import { remove0x, toBuffer, add0x, bufferToHex } from '@rsksmart/rsk-utils' function EventDecoder (abi) { abi = addSignatureDataToAbi(abi) - const rawDecode = (types,data) =>{ - const decoded = Web3EthAbi.decodeParameters(types,data) - delete decoded['__length__'] - const arrDecoded = Object.keys(decoded).map(key => decoded[key]) - return arrDecoded - } - const formatDecoded = (decoded) => { return add0x(Buffer.isBuffer(decoded) ? bufferToHex(decoded) : decoded.toString(16)) } @@ -29,31 +22,20 @@ function EventDecoder (abi) { } const decodeElement = (data, types) => { - try{ - let decoded = rawDecode(types,data) - if (Array.isArray(decoded)) { - decoded = decoded.map(d => formatDecoded(d)) - if (decoded.length === 1) decoded = decoded.join() - } else { - decoded = formatDecoded(decoded) - } - return decoded - }catch(e){ - console.log(e) - return '' + let decoded = ethAbi.rawDecode(types, toBuffer(data)) + if (Array.isArray(decoded)) { + decoded = decoded.map(d => formatDecoded(d)) + if (decoded.length === 1) decoded = decoded.join() + } else { + decoded = formatDecoded(decoded) } + return decoded } const decodeData = (data, types) => { - try{ - let decoded = rawDecode(types,data) - return decoded.map(d => formatDecoded(d)) - }catch(e){ - console.log(e) - return [''] - } + let decoded = ethAbi.rawDecode(types, toBuffer(data)) + return decoded.map(d => formatDecoded(d)) } - const decodeLog = log => { log = Object.assign({}, log) const { eventABI, topics } = getEventAbi(log.topics) From 24e4c06ca223227d376ed2f2fcd66c1b5d36587a Mon Sep 17 00:00:00 2001 From: Ilan Date: Wed, 3 Aug 2022 21:03:05 -0300 Subject: [PATCH 04/33] Revert "adding proxy EIP1167 validation (#17)" This reverts commit 9f8fb7ffab6307228e5d21fbf57e2a5266ba0e8e. --- src/index.js | 4 +--- src/lib/Constants.js | 2 -- src/lib/ContractParser.js | 15 +-------------- src/lib/types.js | 3 +-- test/ContractParser.spec.js | 11 ----------- test/interfaces.spec.js | 3 +-- 6 files changed, 4 insertions(+), 34 deletions(-) delete mode 100644 src/lib/Constants.js diff --git a/src/index.js b/src/index.js index b92a6ea..bcf3c36 100644 --- a/src/index.js +++ b/src/index.js @@ -2,8 +2,6 @@ import { ContractParser } from './lib/ContractParser' import { BcSearch } from './lib/BcSearch' import Contract from './lib/Contract' import bridge from './lib/nativeContracts/bridgeAbi' -import { contractsInterfaces } from './lib/types' const abi = { bridge } -const types = { contractsInterfaces } -export { ContractParser, BcSearch, Contract, abi, types } +export { ContractParser, BcSearch, Contract, abi } export default ContractParser diff --git a/src/lib/Constants.js b/src/lib/Constants.js deleted file mode 100644 index 84b961c..0000000 --- a/src/lib/Constants.js +++ /dev/null @@ -1,2 +0,0 @@ -export const EIP_1167_PREFIX='363d3d373d3d3d363d73'; -export const EIP_1167_SUFFIX='5af43d82803e903d91602b57fd5bf3'; diff --git a/src/lib/ContractParser.js b/src/lib/ContractParser.js index 10f8173..3161296 100755 --- a/src/lib/ContractParser.js +++ b/src/lib/ContractParser.js @@ -13,8 +13,6 @@ import { soliditySelector, soliditySignature } from './utils' -import { remove0x } from '@rsksmart/rsk-utils/dist/strings' -import { EIP_1167_PREFIX, EIP_1167_SUFFIX } from './Constants'; export class ContractParser { constructor ({ abi, log, initConfig, nod3 } = {}) { @@ -162,7 +160,6 @@ export class ContractParser { } let interfaces if (isErc165) interfaces = await this.getInterfacesERC165(contract) - else if (this.isEIP1167(txInputData)) interfaces = { EIP1167: true }; else interfaces = this.getInterfacesByMethods(methods) interfaces = Object.keys(interfaces) .filter(k => interfaces[k] === true) @@ -170,17 +167,7 @@ export class ContractParser { return { methods, interfaces } } - getEip1167MasterCopy (bytecode) { - const implementationAddress = bytecode.replace(EIP_1167_PREFIX, '').replace(EIP_1167_SUFFIX, ''); - return implementationAddress; - } - - isEIP1167(bytecode) { - const re = new RegExp(`^${EIP_1167_PREFIX}[a-f0-9]{40}${EIP_1167_SUFFIX}$`, 'i'); - return re.test(remove0x(bytecode)); - } - - async getInterfacesERC165(contract) { + async getInterfacesERC165 (contract) { let ifaces = {} let keys = Object.keys(interfacesIds) for (let i of keys) { diff --git a/src/lib/types.js b/src/lib/types.js index 34425ce..12fff35 100755 --- a/src/lib/types.js +++ b/src/lib/types.js @@ -18,8 +18,7 @@ export const contractsInterfaces = { ERC20: 'ERC20', ERC677: 'ERC677', ERC165: 'ERC165', - ERC721: 'ERC721', - EIP1167: 'EIP1167' + ERC721: 'ERC721' } const ci = contractsInterfaces diff --git a/test/ContractParser.spec.js b/test/ContractParser.spec.js index e8b60de..13ff2c8 100644 --- a/test/ContractParser.spec.js +++ b/test/ContractParser.spec.js @@ -5,9 +5,6 @@ import nod3 from '../src/lib/nod3Connect' const contracts = [ '0xebea27d994371cd0cb9896ae4c926bc5221f6317'] -const proxyContract = "0xc7bC8A9523e04CD82cb19f5D95E38d0258EEf810"; -const masterProxyContract = "0x2a37eedf9724f1c748b5cf88594bd1d29612b7f9"; - const parser = new ContractParser({ nod3 }) describe('# Network', function () { @@ -27,12 +24,4 @@ describe('Contract parser', function () { console.log({ info }) }) } - - it('should return the master of proxy contract',async ()=>{ - const code = await nod3.eth.getCode(proxyContract) - //let info = await parser.getContractInfo(code, contract) - const masterCopy = parser.getMasterCopy(code); - assert.equal(masterCopy,masterProxyContract); - //assert.includeMembers(interfaces, addresses[address]) - }); }) diff --git a/test/interfaces.spec.js b/test/interfaces.spec.js index 314b4d2..7a23408 100755 --- a/test/interfaces.spec.js +++ b/test/interfaces.spec.js @@ -23,8 +23,7 @@ const addresses = { '0x4626f072c42afed36d7aad7f2ab9fa9e16bdb72a': ['ERC165', 'ERC721', 'ERC721Enumerable', 'ERC721Metadata'], '0x1e6d0bad215c6407f552e4d1260e7bae90005ab2': ['ERC165', 'ERC721', 'ERC721Enumerable', 'ERC721Metadata'], '0xe59f2877a51e570fbf751a07d50899838e6b6cc7': ['ERC721'], - '0x7974f2971e0b5d68f30513615fafec5c451da4d1': ['ERC20', 'ERC677'], - '0xc7bc8a9523e04cd82cb19f5d95e38d0258eef810': ['EIP1167'] + '0x7974f2971e0b5d68f30513615fafec5c451da4d1': ['ERC20', 'ERC677'] } const parser = new ContractParser({ nod3 }) From 8ae26fcda053cf9889ce2a08819b72b4422b7ad1 Mon Sep 17 00:00:00 2001 From: Ilan <36084092+ilanolkies@users.noreply.github.com> Date: Thu, 8 Sep 2022 18:39:46 -0300 Subject: [PATCH 05/33] Fix abi decoder (#20) * Fix event decoding 1. ethereumjs-abi is deprecated, it needs to be replaced for a new library 2. the indexed address[] events were wrongly decoded. This change introduced 1. Leading 0s on not-even hex representations 2. try/catch on decodeLog * Remove ethereumjs-abi from Contract * Add address[] event arg to addresses * Update package.json --- .github/workflows/test.yml | 15 + .gitignore | 1 + dist/lib/Contract.js | 36 +- dist/lib/ContractParser.js | 8 +- dist/lib/EventDecoder.js | 71 +- dist/lib/NativeContracts.js | 39 - dist/lib/NativeContractsEvents.js | 213 - dist/lib/compiled_abi.json | 56 - .../nativeContracts/NativeContractsEvents.js | 0 package-lock.json | 8732 ++++++++++++++++- package.json | 5 +- src/lib/Contract.js | 36 +- src/lib/ContractParser.js | 8 +- src/lib/EventDecoder.js | 69 +- src/lib/compiled_abi.json | 56 - test/events.spec.js | 7 +- test/txs/02.expected.js | 8 +- test/txs/09.expected.js | 2 +- test/txs/10.expected.js | 26 +- test/txs/address_array_event.abi.json | 873 ++ test/txs/address_array_event.expected.js | 42 + test/txs/address_array_event.json | 33 + test/txs/address_array_event_2.abi.json | 777 ++ test/txs/address_array_event_2.expected.js | 79 + test/txs/address_array_event_2.json | 31 + test/txs/index.js | 4 +- 26 files changed, 10526 insertions(+), 701 deletions(-) create mode 100644 .github/workflows/test.yml delete mode 100644 dist/lib/NativeContracts.js delete mode 100755 dist/lib/NativeContractsEvents.js mode change 100644 => 100755 dist/lib/nativeContracts/NativeContractsEvents.js create mode 100644 test/txs/address_array_event.abi.json create mode 100644 test/txs/address_array_event.expected.js create mode 100644 test/txs/address_array_event.json create mode 100644 test/txs/address_array_event_2.abi.json create mode 100644 test/txs/address_array_event_2.expected.js create mode 100644 test/txs/address_array_event_2.json diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..1ebc7d6 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,15 @@ +name: ci + +on: push + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + - run: npm ci + - run: npm run test:local + - run: mv dist/ dist2/ + - run: npm run build + - run: diff -arq dist/ dist2/ diff --git a/.gitignore b/.gitignore index 4990bf2..392cf3b 100755 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ src/tmp tmp coverage .nyc_output +dist2 diff --git a/dist/lib/Contract.js b/dist/lib/Contract.js index 1935738..5fff330 100755 --- a/dist/lib/Contract.js +++ b/dist/lib/Contract.js @@ -1,8 +1,8 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = Contract;var _rskUtils = require("@rsksmart/rsk-utils"); -var _ethereumjsAbi = _interopRequireDefault(require("ethereumjs-abi"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = Contract;var _abi = require("@ethersproject/abi"); function Contract(abi, { address, nod3 } = {}) { if (!abi || typeof abi !== 'object') throw new Error('Invalid abi'); + const contractInterface = new _abi.Interface(abi); const at = newAddress => { address = newAddress; @@ -12,38 +12,14 @@ function Contract(abi, { address, nod3 } = {}) { nod3 = nod3Instance; }; - const abiFind = (type, name) => abi.find(i => i.type === type && i.name === name); - - const isMethod = name => abiFind('function', name); - // const isEvent = name => abiFind('event', name) - const getMethod = methodName => { - const abiDef = isMethod(methodName); - if (!abiDef) throw new Error(`Unknown method: "${methodName}"`); - const { name, inputs, outputs } = abiDef; - const types = inputs.filter(i => i.type).map(i => i.type); - const returns = outputs.filter(o => o.type).map(o => o.type); - const id = _ethereumjsAbi.default.methodID(name, types).toString('hex'); - const method = `${name}(${types.join(' ')})`; - return { types, id, name, method, returns }; - }; - - const encodeCall = (methodName, params = []) => { - try { - const { id, types } = getMethod(methodName); - let data = _ethereumjsAbi.default.rawEncode(types, params).toString('hex'); - data = (0, _rskUtils.add0x)(`${id}${data}`); - return data; - } catch (err) { - throw err; - } - }; + const encodeCall = (methodName, params = []) => contractInterface.encodeFunctionData(methodName, params); const decodeCall = (methodName, data) => { - const { returns } = getMethod(methodName); - const decoded = _ethereumjsAbi.default.rawDecode(returns, (0, _rskUtils.toBuffer)(data)); - return Array.isArray(decoded) && returns.length < 2 ? decoded[0] : decoded; + const { outputs } = contractInterface.getFunction(methodName); + const decoded = contractInterface.decodeFunctionResult(methodName, data); + return Array.isArray(decoded) && outputs && outputs.length < 2 ? decoded[0] : decoded; }; const call = async (methodName, params = [], txData = {}) => { diff --git a/dist/lib/ContractParser.js b/dist/lib/ContractParser.js index cc9d9c5..8c97379 100755 --- a/dist/lib/ContractParser.js +++ b/dist/lib/ContractParser.js @@ -87,6 +87,12 @@ class ContractParser { let value = args[i] || []; if (Array.isArray(value)) {// temp fix to undecoded events value.forEach(v => _addresses.push(v)); + } else { + let i = 0; + while (2 + (i + 1) * 40 <= value.length) { + _addresses.push('0x' + value.slice(2 + i * 40, 2 + (i + 1) * 40)); + i++; + } } } }); @@ -97,7 +103,7 @@ class ContractParser { decodeLogs(logs, abi) { abi = abi || this.abi; - const eventDecoder = (0, _EventDecoder.default)(abi); + const eventDecoder = (0, _EventDecoder.default)(abi, this.log); if (!this.nativeContracts || !this.nativeContractsEvents) { throw new Error(`Native contracts decoder is missing, check the value of netId:${this.netId}`); } diff --git a/dist/lib/EventDecoder.js b/dist/lib/EventDecoder.js index deeca77..599e81c 100755 --- a/dist/lib/EventDecoder.js +++ b/dist/lib/EventDecoder.js @@ -1,13 +1,9 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _ethereumjsAbi = _interopRequireDefault(require("ethereumjs-abi")); -var _utils = require("./utils"); -var _rskUtils = require("@rsksmart/rsk-utils");function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _utils = require("./utils"); +var _rskUtils = require("@rsksmart/rsk-utils"); +var _abi = require("@ethersproject/abi"); -function EventDecoder(abi) { - abi = (0, _utils.addSignatureDataToAbi)(abi); - - const formatDecoded = decoded => { - return (0, _rskUtils.add0x)(Buffer.isBuffer(decoded) ? (0, _rskUtils.bufferToHex)(decoded) : decoded.toString(16)); - }; +function EventDecoder(abi, logger) { + const contractInterface = new _abi.Interface((0, _utils.addSignatureDataToAbi)(abi)); const getEventAbi = topics => { topics = [...topics]; @@ -21,38 +17,51 @@ function EventDecoder(abi) { return { eventABI, topics }; }; - const decodeElement = (data, types) => { - let decoded = _ethereumjsAbi.default.rawDecode(types, (0, _rskUtils.toBuffer)(data)); + const formatElement = (type, decoded) => { + if (decoded._isIndexed) return { _isIndexed: true, hash: decoded.hash }; + if (decoded._isBigNumber) { + return decoded.toHexString(); + } + const res = (0, _rskUtils.add0x)(Buffer.isBuffer(decoded) ? (0, _rskUtils.bufferToHex)(decoded) : decoded.toString(16)); + if (type === 'address' || type === 'address[]') return res.toLowerCase(); + return res; + }; + + const encodeElement = (type, decoded) => { if (Array.isArray(decoded)) { - decoded = decoded.map(d => formatDecoded(d)); + decoded = decoded.map(d => formatElement(type, d)); if (decoded.length === 1) decoded = decoded.join(); } else { - decoded = formatDecoded(decoded); + decoded = formatElement(type, decoded); } return decoded; }; - const decodeData = (data, types) => { - let decoded = _ethereumjsAbi.default.rawDecode(types, (0, _rskUtils.toBuffer)(data)); - return decoded.map(d => formatDecoded(d)); - }; const decodeLog = log => { - log = Object.assign({}, log); - const { eventABI, topics } = getEventAbi(log.topics); - const { address } = log; - if (!eventABI) return log; - const { name } = eventABI; - const { signature } = (0, _utils.getSignatureDataFromAbi)(eventABI); - const { inputs } = eventABI; - const indexedInputs = inputs.filter(i => i.indexed === true); - let decodedTopics = topics.map((topic, index) => decodeElement(topic, [indexedInputs[index].type])); - const decodedData = decodeData(log.data, inputs.filter(i => i.indexed === false).map(i => i.type)); - const args = []; - for (let input of inputs) { - args.push(input.indexed ? decodedTopics.shift() : decodedData.shift()); + try { + const { eventFragment, name, args, topic } = contractInterface.parseLog(log); + + const { address } = log; + + const parsedArgs = []; + + for (const i in eventFragment.inputs) parsedArgs.push( + encodeElement(eventFragment.inputs[i].type, args[i])); + + + return Object.assign({}, log, { + signature: (0, _rskUtils.remove0x)(topic), + event: name, + address, + args: parsedArgs, + abi: JSON.parse(eventFragment.format('json')) }); + + } catch (e) { + logger.error(e); + return log; } - return Object.assign(log, { event: name, address, args, abi: eventABI, signature }); }; + return Object.freeze({ decodeLog, getEventAbi }); }var _default = diff --git a/dist/lib/NativeContracts.js b/dist/lib/NativeContracts.js deleted file mode 100644 index 36f8a08..0000000 --- a/dist/lib/NativeContracts.js +++ /dev/null @@ -1,39 +0,0 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.NativeContracts = NativeContracts;exports.default = exports.parseNativeContracts = exports.defaultNativeContracts = void 0; -var _rskUtils = require("rsk-utils"); - -const defaultNativeContracts = { - bridge: '0x0000000000000000000000000000000001000006', - remasc: '0x0000000000000000000000000000000001000008' };exports.defaultNativeContracts = defaultNativeContracts; - - -const parseNativeContracts = nativeContracts => { - if (typeof nativeContracts !== 'object') throw new TypeError(`nativeContracts must be an object`); - if (Object.keys(nativeContracts) < 1) throw new Error(`Empty native contracts list`); - for (let name in nativeContracts) { - let address = nativeContracts[name]; - if (!(0, _rskUtils.isAddress)(address)) throw new Error(`Address of ${name} is not an address`); - nativeContracts[name] = address.toLowerCase(); - } - return nativeContracts; -};exports.parseNativeContracts = parseNativeContracts; - -function NativeContracts({ nativeContracts } = {}) { - nativeContracts = parseNativeContracts(nativeContracts || defaultNativeContracts); - const names = Object.keys(nativeContracts); - - const getNativeContractAddress = contractName => { - return nativeContracts[contractName]; - }; - const getNativeContractName = address => { - address = address.toLowerCase(); - return names.find(name => nativeContracts[name] === address); - }; - - const isNativeContract = address => !!getNativeContractName(address); - - const list = () => nativeContracts; - - return Object.freeze({ getNativeContractAddress, getNativeContractName, isNativeContract, list }); -}var _default = - -NativeContracts;exports.default = _default; \ No newline at end of file diff --git a/dist/lib/NativeContractsEvents.js b/dist/lib/NativeContractsEvents.js deleted file mode 100755 index b2171d0..0000000 --- a/dist/lib/NativeContractsEvents.js +++ /dev/null @@ -1,213 +0,0 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.NativeContractsEvents = NativeContractsEvents;exports.default = void 0;var _rskUtils = require("rsk-utils"); -var btcUtils = _interopRequireWildcard(require("./btcUtils")); -var _utils = require("./utils");function _getRequireWildcardCache() {if (typeof WeakMap !== "function") return null;var cache = new WeakMap();_getRequireWildcardCache = function () {return cache;};return cache;}function _interopRequireWildcard(obj) {if (obj && obj.__esModule) {return obj;}if (obj === null || typeof obj !== "object" && typeof obj !== "function") {return { default: obj };}var cache = _getRequireWildcardCache();if (cache && cache.has(obj)) {return cache.get(obj);}var newObj = {};var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var key in obj) {if (Object.prototype.hasOwnProperty.call(obj, key)) {var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;if (desc && (desc.get || desc.set)) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}newObj.default = obj;if (cache) {cache.set(obj, newObj);}return newObj;} - -function NativeContractsEvents({ bitcoinNetwork } = {}) { - const network = bitcoinNetwork || 'testnet'; - const decodeAddress = address => { - address = Buffer.from((0, _rskUtils.remove0x)(address), 'hex'); - return (0, _rskUtils.add0x)(address.toString('hex').slice(-40)); - }; - - const decodeEventName = name => { - return Buffer.from((0, _rskUtils.remove0x)(name), 'hex').toString('ascii').replace(/\0/g, ''); - }; - - const removeEmptyStartBytes = d => { - d = !Buffer.isBuffer(d) ? Buffer.from(d, 'hex') : d; - return d.slice(d.findIndex(x => x > 0)); - }; - - const decodeData = data => { - let decoded = _rskUtils.rlp.decode(data); - if (!Array.isArray(decoded)) decoded = [decoded]; - return decoded.map(d => (0, _rskUtils.add0x)(removeEmptyStartBytes(d).toString('hex'))); - }; - - const decodeBtcTxHash = data => { - if ((0, _rskUtils.remove0x)(data).length === 128) { - let buffer = Buffer.from((0, _rskUtils.remove0x)(data), 'hex'); - data = (0, _rskUtils.add0x)(buffer.toString('ascii')); - } - return data; - }; - const decodeArray = data => data.map(d => Array.isArray(d) ? decodeArray(d) : (0, _rskUtils.add0x)(d.toString('hex'))); - - const decodeFederationData = data => { - let [a160, keys] = data; - let address = btcUtils.h160toAddress(a160, { prefixKey: 'scriptHash', network }).toString('hex'); - keys = keys.map(d => btcUtils.rskAddressFromBtcPublicKey(d.toString('hex'))); - return [address, keys]; - }; - - const commitFederationDecoder = data => { - const decoded = _rskUtils.rlp.decode(data); - let [oldData, newData, block] = decoded; - let [oldFederationAddress, oldFederationMembers] = decodeFederationData(oldData); - let [newFederationAddress, newFederationMembers] = decodeFederationData(newData); - block = block.toString('ascii'); - return [oldFederationAddress, oldFederationMembers, newFederationAddress, newFederationMembers, block]; - }; - const fakeAbi = Object.freeze((0, _utils.addSignatureDataToAbi)([ - { // Remasc events - anonymous: false, - inputs: [ - { - indexed: true, - name: 'to', - type: 'address' }, - - { - indexed: false, - name: 'blockHash', - type: 'string' }, - - { - indexed: false, - name: 'value', - type: 'uint256' }], - - - name: 'mining_fee_topic', - type: 'event' }, - - { // Bridge events - inputs: [ - { - indexed: false, - name: 'btcTxHash', - type: 'string' }, - - { - indexed: false, - name: 'btcTx', // raw tx? - type: 'string' }], - - - name: 'release_btc_topic', - type: 'event' }, - - { - inputs: [ - { - indexed: false, - name: 'sender', - type: 'address' }], - - - name: 'update_collections_topic', - type: 'event' }, - - { - inputs: [ - { - indexed: false, - name: 'btcTxHash', - type: 'string', - _filter: decodeBtcTxHash }, - - { - indexed: false, - name: 'federatorPublicKey', - type: 'string' }, - - { - indexed: false, - name: 'rskTxHash', - type: 'string' }], - - - name: 'add_signature_topic', - type: 'event' }, - - { - inputs: [ - { - indexed: false, - name: 'oldFederationAddress', - type: 'string' }, - - { - indexed: false, - name: 'oldFederationMembers', - type: 'address[]' }, - - { - indexed: false, - name: 'newFederationAddress', - type: 'string' }, - - { - indexed: false, - name: 'newFederationMembers', - type: 'address[]' }, - - { - indexed: false, - name: 'activationBlockNumber', - type: 'string' }], - - - name: 'commit_federation_topic', - type: 'event', - _decoder: commitFederationDecoder }])); - - - - const getEventAbi = eventName => fakeAbi.find(a => a.name === eventName && a.type === 'event'); - - const decodeByType = (type, value) => { - if (type === 'address') return decodeAddress(value); - return value; - }; - - const decodeInput = (input, value) => { - let { type, _filter } = input; - if (_filter && typeof _filter === 'function') { - value = _filter(value); - } - return decodeByType(type, value); - }; - - const removeCustomProperties = obj => { - const res = Object.assign({}, obj); - for (let p in res) { - if (p[0] === '_') delete res[p]; - } - return res; - }; - - const cleanAbi = abi => { - abi = removeCustomProperties(abi); - let { inputs } = abi; - if (Array.isArray(inputs)) abi.inputs = inputs.map(input => removeCustomProperties(input)); - return abi; - }; - - const decodeLog = log => { - let topics = [...log.topics]; - let event = decodeEventName(topics.shift()); - let abi = getEventAbi(event); - if (event && abi) { - const { signature } = (0, _utils.getSignatureDataFromAbi)(abi); - log.event = event; - log.signature = signature; - log.abi = cleanAbi(abi); - log.args = []; - const decoder = abi._decoder || decodeData; - let dataDecoded = decoder(log.data); - if (!Array.isArray(dataDecoded)) dataDecoded = [dataDecoded]; - for (let i in abi.inputs) { - let input = abi.inputs[i]; - let { indexed } = input; - let value = indexed === true ? topics[i] : dataDecoded[i - topics.length]; - let decoded = decodeInput(input, value); - if (decoded) log.args.push(decoded); - } - } - return log; - }; - return Object.freeze({ decodeLog, abi: fakeAbi }); -}var _default = - -NativeContractsEvents;exports.default = _default; \ No newline at end of file diff --git a/dist/lib/compiled_abi.json b/dist/lib/compiled_abi.json index 8af592f..7c05686 100755 --- a/dist/lib/compiled_abi.json +++ b/dist/lib/compiled_abi.json @@ -7442,36 +7442,6 @@ "eventSignature": null } }, - { - "constant": true, - "inputs": [ - { - "name": "account", - "type": "address" - }, - { - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "__signatureData": { - "method": "supportsInterface(address,bytes4)", - "signature": "d905700708d92a2c508e53fc47c1f4f3376feb686c0c8272b33827f8f33874a3", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, { "constant": true, "inputs": [ @@ -9127,32 +9097,6 @@ "eventSignature": null } }, - { - "constant": true, - "inputs": [ - { - "name": "interfaceID", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "__signatureData": { - "method": "supportsInterface(bytes4)", - "signature": "01ffc9a7a5cef8baa21ed3c5c0d7e23accb804b619e9333b597f47a0d84076e2", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, { "anonymous": false, "inputs": [ diff --git a/dist/lib/nativeContracts/NativeContractsEvents.js b/dist/lib/nativeContracts/NativeContractsEvents.js old mode 100644 new mode 100755 diff --git a/package-lock.json b/package-lock.json index caa8913..b2a16d6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8 +1,8328 @@ { "name": "@rsksmart/rsk-contract-parser", "version": "0.0.10", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "@rsksmart/rsk-contract-parser", + "version": "0.0.10", + "license": "MIT", + "dependencies": { + "@ethersproject/abi": "^5.7.0", + "@rsksmart/nod3": "^0.4.1", + "@rsksmart/rsk-utils": "^1.1.0", + "bs58": "^4.0.1", + "secp256k1": "^3.7.1" + }, + "devDependencies": { + "@babel/cli": "^7.12.1", + "@babel/core": "^7.12.3", + "@babel/node": "^7.12.6", + "@babel/preset-env": "^7.12.1", + "@babel/register": "^7.12.1", + "chai": "^4.2.0", + "chai-as-promised": "^7.1.1", + "eslint": "^4.19.1", + "eslint-config-standard": "^11.0.0", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-json": "^2.0.1", + "eslint-plugin-mocha": "^5.3.0", + "eslint-plugin-node": "^6.0.1", + "eslint-plugin-promise": "^3.8.0", + "eslint-plugin-standard": "^3.1.0", + "mocha": "^7.1.1", + "nodemon": "^2.0.6", + "openzeppelin-solidity": "^2.4.0" + } + }, + "node_modules/@babel/cli": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.12.1.tgz", + "integrity": "sha512-eRJREyrfAJ2r42Iaxe8h3v6yyj1wu9OyosaUHW6UImjGf9ahGL9nsFNh7OCopvtcPL8WnEo7tp78wrZaZ6vG9g==", + "dev": true, + "dependencies": { + "commander": "^4.0.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.0.0", + "lodash": "^4.17.19", + "make-dir": "^2.1.0", + "slash": "^2.0.0", + "source-map": "^0.5.0" + }, + "bin": { + "babel": "bin/babel.js", + "babel-external-helpers": "bin/babel-external-helpers.js" + }, + "optionalDependencies": { + "@nicolo-ribaudo/chokidar-2": "^2.1.8", + "chokidar": "^3.4.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.5.tgz", + "integrity": "sha512-DTsS7cxrsH3by8nqQSpFSyjSfSYl57D6Cf4q8dW3LK83tBKBDCkfcay1nYkXq1nIHXnpX8WMMb/O25HOy3h1zg==", + "dev": true + }, + "node_modules/@babel/core": { + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", + "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.1", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.1", + "@babel/parser": "^7.12.3", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/core/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@babel/generator": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz", + "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.5", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz", + "integrity": "sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.12.5", + "@babel/helper-validator-option": "^7.12.1", + "browserslist": "^4.14.5", + "semver": "^5.5.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz", + "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.1.tgz", + "integrity": "sha512-rsZ4LGvFTZnzdNZR5HZdmJVuXK8834R5QkF3WvcnBhrlVtF0HSIUC6zbreL9MgjTywhKokn8RIYRiq99+DLAxA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-regex": "^7.10.4", + "regexpu-core": "^4.7.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-map": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", + "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", + "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "dev": true, + "dependencies": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "dev": true, + "dependencies": { + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz", + "integrity": "sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.5" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "node_modules/@babel/helper-regex": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", + "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", + "dev": true, + "dependencies": { + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", + "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", + "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==", + "dev": true, + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.11.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz", + "integrity": "sha512-YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A==", + "dev": true + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", + "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helpers": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" + } + }, + "node_modules/@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/node": { + "version": "7.12.6", + "resolved": "https://registry.npmjs.org/@babel/node/-/node-7.12.6.tgz", + "integrity": "sha512-A1TpW2X05ZkI5+WV7Aa24QX4LyGwrGUQPflG1CyBdr84jUuH0mhkE2BQWSQAlfRnp4bMLjeveMJIhS20JaOfVQ==", + "dev": true, + "dependencies": { + "@babel/register": "^7.12.1", + "commander": "^4.0.1", + "core-js": "^3.2.1", + "lodash": "^4.17.19", + "node-environment-flags": "^1.0.5", + "regenerator-runtime": "^0.13.4", + "resolve": "^1.13.1", + "v8flags": "^3.1.1" + }, + "bin": { + "babel-node": "bin/babel-node.js" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/parser": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.5.tgz", + "integrity": "sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz", + "integrity": "sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", + "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", + "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz", + "integrity": "sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", + "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz", + "integrity": "sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", + "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.5.tgz", + "integrity": "sha512-UiAnkKuOrCyjZ3sYNHlRlfuZJbBHknMQ9VMwVeX97Ofwx7RpD6gS2HfqTCh8KNUQgcOm8IKt103oR4KIjh7Q8g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", + "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.1.tgz", + "integrity": "sha512-c2uRpY6WzaVDzynVY9liyykS+kVU+WRZPMPYpkelXH8KBt1oXoI89kPbZKKG/jDT5UK92FTW2fZkZaJhdiBabw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz", + "integrity": "sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", + "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", + "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", + "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", + "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz", + "integrity": "sha512-zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", + "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4", + "globals": "^11.1.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", + "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", + "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", + "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", + "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", + "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", + "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", + "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", + "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", + "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", + "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", + "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.12.1", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", + "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-identifier": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", + "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", + "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", + "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", + "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", + "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", + "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", + "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", + "dev": true, + "dependencies": { + "regenerator-transform": "^0.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", + "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", + "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", + "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.1.tgz", + "integrity": "sha512-CiUgKQ3AGVk7kveIaPEET1jNDhZZEl1RPMWdTBE1799bdz++SwqDHStmxfCtDfBhQgCl38YRiSnrMuUMZIWSUQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-regex": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", + "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz", + "integrity": "sha512-EPGgpGy+O5Kg5pJFNDKuxt9RdmTgj5sgrus2XVeMp/ZIbOESadgILUbm50SNpghOh3/6yrbsH+NB5+WJTmsA7Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz", + "integrity": "sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", + "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.1.tgz", + "integrity": "sha512-H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.12.1", + "@babel/helper-compilation-targets": "^7.12.1", + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-option": "^7.12.1", + "@babel/plugin-proposal-async-generator-functions": "^7.12.1", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-proposal-dynamic-import": "^7.12.1", + "@babel/plugin-proposal-export-namespace-from": "^7.12.1", + "@babel/plugin-proposal-json-strings": "^7.12.1", + "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", + "@babel/plugin-proposal-numeric-separator": "^7.12.1", + "@babel/plugin-proposal-object-rest-spread": "^7.12.1", + "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.12.1", + "@babel/plugin-proposal-private-methods": "^7.12.1", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.12.1", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.12.1", + "@babel/plugin-transform-arrow-functions": "^7.12.1", + "@babel/plugin-transform-async-to-generator": "^7.12.1", + "@babel/plugin-transform-block-scoped-functions": "^7.12.1", + "@babel/plugin-transform-block-scoping": "^7.12.1", + "@babel/plugin-transform-classes": "^7.12.1", + "@babel/plugin-transform-computed-properties": "^7.12.1", + "@babel/plugin-transform-destructuring": "^7.12.1", + "@babel/plugin-transform-dotall-regex": "^7.12.1", + "@babel/plugin-transform-duplicate-keys": "^7.12.1", + "@babel/plugin-transform-exponentiation-operator": "^7.12.1", + "@babel/plugin-transform-for-of": "^7.12.1", + "@babel/plugin-transform-function-name": "^7.12.1", + "@babel/plugin-transform-literals": "^7.12.1", + "@babel/plugin-transform-member-expression-literals": "^7.12.1", + "@babel/plugin-transform-modules-amd": "^7.12.1", + "@babel/plugin-transform-modules-commonjs": "^7.12.1", + "@babel/plugin-transform-modules-systemjs": "^7.12.1", + "@babel/plugin-transform-modules-umd": "^7.12.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", + "@babel/plugin-transform-new-target": "^7.12.1", + "@babel/plugin-transform-object-super": "^7.12.1", + "@babel/plugin-transform-parameters": "^7.12.1", + "@babel/plugin-transform-property-literals": "^7.12.1", + "@babel/plugin-transform-regenerator": "^7.12.1", + "@babel/plugin-transform-reserved-words": "^7.12.1", + "@babel/plugin-transform-shorthand-properties": "^7.12.1", + "@babel/plugin-transform-spread": "^7.12.1", + "@babel/plugin-transform-sticky-regex": "^7.12.1", + "@babel/plugin-transform-template-literals": "^7.12.1", + "@babel/plugin-transform-typeof-symbol": "^7.12.1", + "@babel/plugin-transform-unicode-escapes": "^7.12.1", + "@babel/plugin-transform-unicode-regex": "^7.12.1", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.12.1", + "core-js-compat": "^3.6.2", + "semver": "^5.5.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/register": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.12.1.tgz", + "integrity": "sha512-XWcmseMIncOjoydKZnWvWi0/5CUCD+ZYKhRwgYlWOrA8fGZ/FjuLRpqtIhLOVD/fvR1b9DQHtZPn68VvhpYf+Q==", + "dev": true, + "dependencies": { + "find-cache-dir": "^2.0.0", + "lodash": "^4.17.19", + "make-dir": "^2.1.0", + "pirates": "^4.0.0", + "source-map-support": "^0.5.16" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", + "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.4" + } + }, + "node_modules/@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/traverse": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.5.tgz", + "integrity": "sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.5", + "@babel/types": "^7.12.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/traverse/node_modules/debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/traverse/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@babel/types": { + "version": "7.12.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", + "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "node_modules/@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0" + } + }, + "node_modules/@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "node_modules/@ethersproject/bignumber/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "node_modules/@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "node_modules/@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "node_modules/@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ] + }, + "node_modules/@ethersproject/networks": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.0.tgz", + "integrity": "sha512-MG6oHSQHd4ebvJrleEQQ4HhVu8Ichr0RDYEfHzsVAVjHNM+w36x9wp9r+hf1JstMXtseXDtkiVoARAG6M959AA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/signing-key/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "node_modules/@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "node_modules/@ethersproject/web": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.0.tgz", + "integrity": "sha512-ApHcbbj+muRASVDSCl/tgxaH2LBkRMEYfLOLVa0COipx0+nlu0QKet7U2lEg0vdkh8XRSLf2nd1f1Uk9SrVSGA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@nicolo-ribaudo/chokidar-2": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8.tgz", + "integrity": "sha512-FohwULwAebCUKi/akMFyGi7jfc7JXTeMHzKxuP3umRd9mK/2Y7/SMBSI2jX+YLopPXi+PF9l307NmpfxTdCegA==", + "dev": true, + "optional": true, + "dependencies": { + "chokidar": "2.1.8" + } + }, + "node_modules/@nicolo-ribaudo/chokidar-2/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", + "dev": true, + "optional": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/@rsksmart/nod3": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@rsksmart/nod3/-/nod3-0.4.1.tgz", + "integrity": "sha512-REzlOa1MgYIuL35ybsSgzG+EbLA0rT2Zu/upLAMGVymXBhzz3l6Mi14dZdjQxCglJTlatj1nw+Lx9qDRc/EB9g==", + "bin": { + "nod3-cli": "dist/cli/nod3-cli.js" + } + }, + "node_modules/@rsksmart/rsk-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rsksmart/rsk-utils/-/rsk-utils-1.1.0.tgz", + "integrity": "sha512-ZveRUj9AHGyxSPIwWIIKhjQ5XEWtaZa5HYt8zqEhv5HDSRW2KiaTffG/fGv07XwMtmLVo/DA5/a2Ak9igVaNSA==", + "dependencies": { + "keccak": "^2.0.0", + "rlp": "^2.2.4" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "dependencies": { + "acorn": "^3.0.4" + } + }, + "node_modules/acorn-jsx/node_modules/acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "dependencies": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "node_modules/ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "dev": true, + "peerDependencies": { + "ajv": "^5.0.0" + } + }, + "node_modules/ansi-align": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "dev": true, + "dependencies": { + "string-width": "^3.0.0" + } + }, + "node_modules/ansi-align/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-align/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-includes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", + "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "is-string": "^1.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", + "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat/node_modules/es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true, + "optional": true + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "optional": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "dependencies": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + } + }, + "node_modules/babel-code-frame/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-code-frame/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-code-frame/node_modules/js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "node_modules/babel-code-frame/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-code-frame/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "optional": true, + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base-x": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", + "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "optional": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "optional": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bip66": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", + "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + }, + "node_modules/boxen": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "dev": true, + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/boxen/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/boxen/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/boxen/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/boxen/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserslist": { + "version": "4.14.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.7.tgz", + "integrity": "sha512-BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001157", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.591", + "escalade": "^3.1.1", + "node-releases": "^1.1.66" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "optional": true, + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", + "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true, + "dependencies": { + "callsites": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001159", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001159.tgz", + "integrity": "sha512-w9Ph56jOsS8RL20K9cLND3u/+5WASWdhC/PPrf+V3/HsM3uHOavWOR1Xzakbv4Puo/srmPHudkmCRWM7Aq+/UA==", + "dev": true + }, + "node_modules/chai": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", + "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chai-as-promised": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "dev": true, + "dependencies": { + "check-error": "^1.0.2" + }, + "peerDependencies": { + "chai": ">= 2.1.2 < 5" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", + "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.1.2" + } + }, + "node_modules/chokidar/node_modules/anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/chokidar/node_modules/binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar/node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar/node_modules/fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "deprecated": "\"Please update to latest v2.3 or v2.2\"", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chokidar/node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/chokidar/node_modules/readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/chokidar/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "deprecated": "CircularJSON is in maintenance only, flatted is its successor.", + "dev": true + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "optional": true, + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "optional": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "dev": true + }, + "node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "optional": true, + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", + "dev": true + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true, + "optional": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/concat-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/configstore/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/configstore/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/convert-source-map/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-js": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.7.0.tgz", + "integrity": "sha512-NwS7fI5M5B85EwpWuIwJN4i/fbisQUwLwiSNUWeXlkAZ0sbBjLEvLvFLf1uzAUV66PcEPt4xCGCmOZSxVf3xzA==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.7.0.tgz", + "integrity": "sha512-V8yBI3+ZLDVomoWICO6kq/CD28Y4r1M7CWeO4AGpMdMfseu8bkSubBmUPySMGKRTS+su4XQ07zUkAsiu9FCWTg==", + "dev": true, + "dependencies": { + "browserslist": "^4.14.6", + "semver": "7.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "optional": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "optional": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/drbg.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", + "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", + "dependencies": { + "browserify-aes": "^1.0.6", + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.3.599", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.599.tgz", + "integrity": "sha512-u6VGpFsIzSCNrWJb1I72SUypz3EGoBaiEgygoMkd0IOcGR3WF3je5VTx9OIRI9Qd8UOMHinLImyJFkYHTq6nsg==", + "dev": true + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", + "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", + "dev": true, + "dependencies": { + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", + "table": "4.0.2", + "text-table": "~0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-config-standard": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-11.0.0.tgz", + "integrity": "sha512-oDdENzpViEe5fwuRCWla7AXQd++/oyIp8zP+iP9jiUPG6NBj3SHgdgtl/kTn00AjeN+1HNvavTKmYbMo+xMOlw==", + "dev": true, + "peerDependencies": { + "eslint": ">=4.18.0", + "eslint-plugin-import": ">=2.8.0", + "eslint-plugin-node": ">=5.2.1", + "eslint-plugin-promise": ">=3.6.0", + "eslint-plugin-standard": ">=3.0.1" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "dev": true, + "dependencies": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "dev": true, + "dependencies": { + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "dependencies": { + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.22.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz", + "integrity": "sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.1", + "array.prototype.flat": "^1.2.3", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.4", + "eslint-module-utils": "^2.6.0", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.1", + "read-pkg-up": "^2.0.0", + "resolve": "^1.17.0", + "tsconfig-paths": "^3.9.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-json": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-json/-/eslint-plugin-json-2.1.2.tgz", + "integrity": "sha512-isM/fsUxS4wN1+nLsWoV5T4gLgBQnsql3nMTr8u+cEls1bL8rRQO5CP5GtxJxaOfbcKqnz401styw+H/P+e78Q==", + "dev": true, + "dependencies": { + "lodash": "^4.17.19", + "vscode-json-languageservice": "^3.7.0" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/eslint-plugin-mocha": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-5.3.0.tgz", + "integrity": "sha512-3uwlJVLijjEmBeNyH60nzqgA1gacUWLUmcKV8PIGNvj1kwP/CTgAWQHn2ayyJVwziX+KETkr9opNwT1qD/RZ5A==", + "dev": true, + "dependencies": { + "ramda": "^0.26.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "eslint": ">= 4.0.0" + } + }, + "node_modules/eslint-plugin-node": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz", + "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", + "dev": true, + "dependencies": { + "ignore": "^3.3.6", + "minimatch": "^3.0.4", + "resolve": "^1.3.3", + "semver": "^5.4.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": ">=3.1.0" + } + }, + "node_modules/eslint-plugin-promise": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.8.0.tgz", + "integrity": "sha512-JiFL9UFR15NKpHyGii1ZcvmtIqa3UTwiDAGb8atSffe43qJ3+1czVGN6UtkklpcJ2DVnqvTMzEKRaJdBkAL2aQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-standard": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-3.1.0.tgz", + "integrity": "sha512-fVcdyuKRr0EZ4fjWl3c+gp1BANFJD1+RaWa2UPYfMZ6jCtp5RG00kSaXnK/dE5sYzt4kaWJ9qdxqUfc0d9kX0w==", + "dev": true, + "peerDependencies": { + "eslint": ">=3.19.0" + } + }, + "node_modules/eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "dev": true, + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/espree": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "dev": true, + "dependencies": { + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "optional": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "optional": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "optional": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "optional": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "dev": true, + "dependencies": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "optional": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "optional": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "optional": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "dependencies": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, + "node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/flat": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", + "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", + "dev": true, + "dependencies": { + "is-buffer": "~2.0.3" + }, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", + "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", + "dev": true, + "dependencies": { + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/flat/node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=4" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "optional": true, + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz", + "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-dirs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", + "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", + "dev": true, + "dependencies": { + "ini": "^1.3.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "node_modules/growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true, + "engines": { + "node": ">=4.x" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "optional": true, + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "optional": true, + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "optional": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true + }, + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true, + "optional": true + }, + "node_modules/is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", + "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "optional": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "dev": true, + "dependencies": { + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", + "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-npm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", + "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "optional": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "node_modules/is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz", + "integrity": "sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==", + "dev": true + }, + "node_modules/keccak": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-2.1.0.tgz", + "integrity": "sha512-m1wbJRTo+gWbctZWay9i26v5fFnYkOn7D5PCxJ3fZUGUEb49dE1Pm4BREUYCt/aoO6di7jeoGmhvqN9Nzylm3Q==", + "hasInstallScript": true, + "dependencies": { + "bindings": "^1.5.0", + "inherits": "^2.0.4", + "nan": "^2.14.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=5.12.0" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "optional": true, + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "optional": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "optional": true, + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "optional": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mocha": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", + "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", + "dev": true, + "dependencies": { + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "chokidar": "3.3.0", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "3.0.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.5", + "ms": "2.1.1", + "node-environment-flags": "1.0.6", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.3.2", + "yargs-parser": "13.1.2", + "yargs-unparser": "1.6.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha/node_modules/anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mocha/node_modules/binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/chokidar": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", + "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.2.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.1.1" + } + }, + "node_modules/mocha/node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/mocha/node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "deprecated": "\"Please update to latest v2.3 or v2.2\"", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/mocha/node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/mocha/node_modules/js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "node_modules/mocha/node_modules/object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mocha/node_modules/readdirp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", + "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", + "dev": true, + "dependencies": { + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "node_modules/nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "optional": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/node-environment-flags": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", + "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", + "dev": true, + "dependencies": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + } + }, + "node_modules/node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/node-releases": { + "version": "1.1.67", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.67.tgz", + "integrity": "sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg==", + "dev": true + }, + "node_modules/nodemon": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.6.tgz", + "integrity": "sha512-4I3YDSKXg6ltYpcnZeHompqac4E6JeAMpGm8tJnB9Y3T0ehasLa4139dJOcCrB93HHrUMsCrKtoAlXTqT5n4AQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "chokidar": "^3.2.2", + "debug": "^3.2.6", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.7", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.3", + "update-notifier": "^4.1.0" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/nodemon/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "optional": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "optional": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "optional": true, + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "optional": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/openzeppelin-solidity": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/openzeppelin-solidity/-/openzeppelin-solidity-2.5.1.tgz", + "integrity": "sha512-oCGtQPLOou4su76IMr4XXJavy9a8OZmAXeUZ8diOdFznlL/mlkIlYr7wajqCzH4S47nlKPS7m0+a2nilCTpVPQ==", + "dev": true + }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true, + "optional": true + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "node_modules/path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "node_modules/path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "dependencies": { + "pify": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-type/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pathval": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "dev": true, + "dependencies": { + "node-modules-regexp": "^1.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ramda": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz", + "integrity": "sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==", + "dev": true + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "dependencies": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/readdirp/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "optional": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "optional": true + }, + "node_modules/readdirp/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "optional": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "optional": true, + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexpp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", + "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true, + "optional": true + }, + "node_modules/repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true, + "dependencies": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dev": true, + "dependencies": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true, + "optional": true + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/rlp": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", + "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", + "dependencies": { + "bn.js": "^4.11.1" + }, + "bin": { + "rlp": "bin/rlp" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "dev": true + }, + "node_modules/rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true, + "dependencies": { + "rx-lite": "*" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "optional": true, + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/secp256k1": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.8.0.tgz", + "integrity": "sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw==", + "hasInstallScript": true, + "dependencies": { + "bindings": "^1.5.0", + "bip66": "^1.1.5", + "bn.js": "^4.11.8", + "create-hash": "^1.2.0", + "drbg.js": "^1.0.1", + "elliptic": "^6.5.2", + "nan": "^2.14.0", + "safe-buffer": "^5.1.2" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "optional": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "optional": true, + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "optional": true, + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "optional": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "optional": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "optional": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "optional": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "dev": true, + "optional": true + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", + "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", + "dev": true + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "optional": true, + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "optional": true, + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "optional": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz", + "integrity": "sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend/node_modules/es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz", + "integrity": "sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart/node_modules/es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/table": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "dev": true, + "dependencies": { + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", + "slice-ansi": "1.0.0", + "string-width": "^2.1.1" + } + }, + "node_modules/term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "optional": true, + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "optional": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", + "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/undefsafe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", + "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", + "dev": true, + "dependencies": { + "debug": "^2.2.0" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "optional": true, + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "optional": true, + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "optional": true, + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "optional": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-notifier": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", + "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", + "dev": true, + "dependencies": { + "boxen": "^4.2.0", + "chalk": "^3.0.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.3.1", + "is-npm": "^4.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "pupa": "^2.0.1", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-notifier/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/update-notifier/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/update-notifier/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-notifier/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true, + "optional": true + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vscode-json-languageservice": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-3.10.0.tgz", + "integrity": "sha512-8IvuRSQnjznu+obqy6Dy4S4H68Ke7a3Kb+A0FcdctyAMAWEnrORpCpMOMqEYiPLm/OTYLVWJ7ql3qToDTozu4w==", + "dev": true, + "dependencies": { + "jsonc-parser": "^2.3.1", + "vscode-languageserver-textdocument": "^1.0.1", + "vscode-languageserver-types": "3.16.0-next.2", + "vscode-nls": "^5.0.0", + "vscode-uri": "^2.1.2" + } + }, + "node_modules/vscode-languageserver-textdocument": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.1.tgz", + "integrity": "sha512-UIcJDjX7IFkck7cSkNNyzIz5FyvpQfY7sdzVy+wkKN/BLaD4DQ0ppXQrKePomCxTS7RrolK1I0pey0bG9eh8dA==", + "dev": true + }, + "node_modules/vscode-languageserver-types": { + "version": "3.16.0-next.2", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0-next.2.tgz", + "integrity": "sha512-QjXB7CKIfFzKbiCJC4OWC8xUncLsxo19FzGVp/ADFvvi87PlmBSCAtZI5xwGjF5qE0xkLf0jjKUn3DzmpDP52Q==", + "dev": true + }, + "node_modules/vscode-nls": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.0.0.tgz", + "integrity": "sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA==", + "dev": true + }, + "node_modules/vscode-uri": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-2.1.2.tgz", + "integrity": "sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==", + "dev": true + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "node_modules/wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/widest-line/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/widest-line/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/widest-line/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/widest-line/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/widest-line/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "dependencies": { + "mkdirp": "^0.5.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", + "dev": true, + "dependencies": { + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + } + }, "dependencies": { "@babel/cli": { "version": "7.12.1", @@ -1090,6 +9410,214 @@ "to-fast-properties": "^2.0.0" } }, + "@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "requires": { + "@ethersproject/bytes": "^5.7.0" + } + }, + "@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + }, + "dependencies": { + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + } + } + }, + "@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "requires": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==" + }, + "@ethersproject/networks": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.0.tgz", + "integrity": "sha512-MG6oHSQHd4ebvJrleEQQ4HhVu8Ichr0RDYEfHzsVAVjHNM+w36x9wp9r+hf1JstMXtseXDtkiVoARAG6M959AA==", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + }, + "dependencies": { + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + } + } + }, + "@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "@ethersproject/web": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.0.tgz", + "integrity": "sha512-ApHcbbj+muRASVDSCl/tgxaH2LBkRMEYfLOLVa0COipx0+nlu0QKet7U2lEg0vdkh8XRSLf2nd1f1Uk9SrVSGA==", + "requires": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, "@nicolo-ribaudo/chokidar-2": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8.tgz", @@ -1152,41 +9680,12 @@ "defer-to-connect": "^1.0.1" } }, - "@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "requires": { - "@types/node": "*" - } - }, "@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", "dev": true }, - "@types/node": { - "version": "14.14.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", - "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==" - }, - "@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", - "requires": { - "@types/node": "*" - } - }, - "@types/secp256k1": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.1.tgz", - "integrity": "sha512-+ZjSA8ELlOp8SlKi0YLB2tz9d5iPNEmOBd+8Rz21wTMdaXQIa9b6TEnD6l5qKOCypE7FSyPyck12qZJxSDNoog==", - "requires": { - "@types/node": "*" - } - }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -1232,7 +9731,8 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", - "dev": true + "dev": true, + "requires": {} }, "ansi-align": { "version": "3.0.0", @@ -1588,11 +10088,6 @@ "safe-buffer": "^5.0.1" } }, - "blakejs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz", - "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=" - }, "bn.js": { "version": "4.11.9", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", @@ -1789,16 +10284,6 @@ "base-x": "^3.0.2" } }, - "bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", @@ -2710,7 +11195,8 @@ "version": "11.0.0", "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-11.0.0.tgz", "integrity": "sha512-oDdENzpViEe5fwuRCWla7AXQd++/oyIp8zP+iP9jiUPG6NBj3SHgdgtl/kTn00AjeN+1HNvavTKmYbMo+xMOlw==", - "dev": true + "dev": true, + "requires": {} }, "eslint-import-resolver-node": { "version": "0.3.4", @@ -2860,7 +11346,8 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-3.1.0.tgz", "integrity": "sha512-fVcdyuKRr0EZ4fjWl3c+gp1BANFJD1+RaWa2UPYfMZ6jCtp5RG00kSaXnK/dE5sYzt4kaWJ9qdxqUfc0d9kX0w==", - "dev": true + "dev": true, + "requires": {} }, "eslint-scope": { "version": "3.7.3", @@ -2940,81 +11427,6 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, - "ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "requires": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - }, - "dependencies": { - "keccak": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz", - "integrity": "sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA==", - "requires": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } - }, - "secp256k1": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", - "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", - "requires": { - "elliptic": "^6.5.2", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } - } - } - }, - "ethereumjs-abi": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", - "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", - "requires": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" - } - }, - "ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "requires": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "ethjs-util": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", - "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", - "requires": { - "is-hex-prefixed": "1.0.0", - "strip-hex-prefix": "1.0.0" - } - }, "evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", @@ -3812,11 +12224,6 @@ "is-extglob": "^2.1.1" } }, - "is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=" - }, "is-installed-globally": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", @@ -3951,6 +12358,11 @@ "dev": true, "optional": true }, + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -4477,11 +12889,6 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, - "node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, "node-environment-flags": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", @@ -4492,11 +12899,6 @@ "semver": "^5.7.0" } }, - "node-gyp-build": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", - "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==" - }, "node-modules-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", @@ -4853,18 +13255,6 @@ "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", "dev": true }, - "pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, "picomatch": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", @@ -4969,14 +13359,6 @@ "integrity": "sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==", "dev": true }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, "rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -5374,11 +13756,6 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" - }, "secp256k1": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.8.0.tgz", @@ -5448,11 +13825,6 @@ } } }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, "sha.js": { "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", @@ -5731,6 +14103,14 @@ } } }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -5805,14 +14185,6 @@ } } }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -5836,14 +14208,6 @@ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, - "strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", - "requires": { - "is-hex-prefixed": "1.0.0" - } - }, "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", diff --git a/package.json b/package.json index cc09835..16caff0 100755 --- a/package.json +++ b/package.json @@ -1,11 +1,12 @@ { "name": "@rsksmart/rsk-contract-parser", - "version": "0.0.10", + "version": "0.0.11", "description": "", "main": "dist/index.js", "scripts": { "lint": "npx eslint src/**/* --quiet", "test": "npx mocha", + "test:local": "npx mocha test/compiler.spec.js test/events.spec.js test/nativeContracts.spec.js", "build": "npx babel src -d dist --copy-files", "abi": "npx babel-node --presets @babel/preset-env src/lib/compileJsonAbis.js" }, @@ -46,10 +47,10 @@ "openzeppelin-solidity": "^2.4.0" }, "dependencies": { + "@ethersproject/abi": "^5.7.0", "@rsksmart/nod3": "^0.4.1", "@rsksmart/rsk-utils": "^1.1.0", "bs58": "^4.0.1", - "ethereumjs-abi": "^0.6.8", "secp256k1": "^3.7.1" } } diff --git a/src/lib/Contract.js b/src/lib/Contract.js index 792a1ce..49236db 100755 --- a/src/lib/Contract.js +++ b/src/lib/Contract.js @@ -1,8 +1,8 @@ -import { toBuffer, add0x } from '@rsksmart/rsk-utils' -import ethAbi from 'ethereumjs-abi' +import { Interface } from '@ethersproject/abi' export default function Contract (abi, { address, nod3 } = {}) { if (!abi || typeof abi !== 'object') throw new Error('Invalid abi') + const contractInterface = new Interface(abi) const at = newAddress => { address = newAddress @@ -12,38 +12,14 @@ export default function Contract (abi, { address, nod3 } = {}) { nod3 = nod3Instance } - const abiFind = (type, name) => abi.find(i => i.type === type && i.name === name) - - const isMethod = name => abiFind('function', name) - // const isEvent = name => abiFind('event', name) - const getMethod = (methodName) => { - const abiDef = isMethod(methodName) - if (!abiDef) throw new Error(`Unknown method: "${methodName}"`) - const { name, inputs, outputs } = abiDef - const types = inputs.filter(i => i.type).map(i => i.type) - const returns = outputs.filter(o => o.type).map(o => o.type) - const id = ethAbi.methodID(name, types).toString('hex') - const method = `${name}(${types.join(' ')})` - return { types, id, name, method, returns } - } - - const encodeCall = (methodName, params = []) => { - try { - const { id, types } = getMethod(methodName) - let data = ethAbi.rawEncode(types, params).toString('hex') - data = add0x(`${id}${data}`) - return data - } catch (err) { - throw err - } - } + const encodeCall = (methodName, params = []) => contractInterface.encodeFunctionData(methodName, params) const decodeCall = (methodName, data) => { - const { returns } = getMethod(methodName) - const decoded = ethAbi.rawDecode(returns, toBuffer(data)) - return (Array.isArray(decoded) && returns.length < 2) ? decoded[0] : decoded + const { outputs } = contractInterface.getFunction(methodName) + const decoded = contractInterface.decodeFunctionResult(methodName, data) + return (Array.isArray(decoded) && outputs && outputs.length < 2) ? decoded[0] : decoded } const call = async (methodName, params = [], txData = {}) => { diff --git a/src/lib/ContractParser.js b/src/lib/ContractParser.js index 3161296..5d38b4c 100755 --- a/src/lib/ContractParser.js +++ b/src/lib/ContractParser.js @@ -87,6 +87,12 @@ export class ContractParser { let value = args[i] || [] if (Array.isArray(value)) { // temp fix to undecoded events value.forEach(v => _addresses.push(v)) + } else { + let i = 0 + while (2 + (i+1) * 40 <= value.length) { + _addresses.push('0x' + value.slice(2 + i * 40, 2 + (i+1) * 40)) + i++ + } } } }) @@ -97,7 +103,7 @@ export class ContractParser { decodeLogs (logs, abi) { abi = abi || this.abi - const eventDecoder = EventDecoder(abi) + const eventDecoder = EventDecoder(abi, this.log) if (!this.nativeContracts || !this.nativeContractsEvents) { throw new Error(`Native contracts decoder is missing, check the value of netId:${this.netId}`) } diff --git a/src/lib/EventDecoder.js b/src/lib/EventDecoder.js index 817343a..cf3da31 100755 --- a/src/lib/EventDecoder.js +++ b/src/lib/EventDecoder.js @@ -1,13 +1,9 @@ -import ethAbi from 'ethereumjs-abi' import { addSignatureDataToAbi, getSignatureDataFromAbi } from './utils' -import { remove0x, toBuffer, add0x, bufferToHex } from '@rsksmart/rsk-utils' +import { remove0x, add0x, bufferToHex } from '@rsksmart/rsk-utils' +import { Interface } from '@ethersproject/abi' -function EventDecoder (abi) { - abi = addSignatureDataToAbi(abi) - - const formatDecoded = (decoded) => { - return add0x(Buffer.isBuffer(decoded) ? bufferToHex(decoded) : decoded.toString(16)) - } +function EventDecoder (abi, logger) { + const contractInterface = new Interface(addSignatureDataToAbi(abi)) const getEventAbi = topics => { topics = [...topics] @@ -21,38 +17,51 @@ function EventDecoder (abi) { return { eventABI, topics } } - const decodeElement = (data, types) => { - let decoded = ethAbi.rawDecode(types, toBuffer(data)) + const formatElement = (type, decoded) => { + if (decoded._isIndexed) return { _isIndexed: true, hash: decoded.hash } + if (decoded._isBigNumber) { + return decoded.toHexString() + } + const res = add0x(Buffer.isBuffer(decoded) ? bufferToHex(decoded) : decoded.toString(16)) + if(type === 'address' || type === 'address[]') return res.toLowerCase() + return res + } + + const encodeElement = (type, decoded) => { if (Array.isArray(decoded)) { - decoded = decoded.map(d => formatDecoded(d)) + decoded = decoded.map(d => formatElement(type, d)) if (decoded.length === 1) decoded = decoded.join() } else { - decoded = formatDecoded(decoded) + decoded = formatElement(type, decoded) } return decoded } - const decodeData = (data, types) => { - let decoded = ethAbi.rawDecode(types, toBuffer(data)) - return decoded.map(d => formatDecoded(d)) - } const decodeLog = log => { - log = Object.assign({}, log) - const { eventABI, topics } = getEventAbi(log.topics) - const { address } = log - if (!eventABI) return log - const { name } = eventABI - const { signature } = getSignatureDataFromAbi(eventABI) - const { inputs } = eventABI - const indexedInputs = inputs.filter(i => i.indexed === true) - let decodedTopics = topics.map((topic, index) => decodeElement(topic, [indexedInputs[index].type])) - const decodedData = decodeData(log.data, inputs.filter(i => i.indexed === false).map(i => i.type)) - const args = [] - for (let input of inputs) { - args.push((input.indexed) ? decodedTopics.shift() : decodedData.shift()) + try { + const { eventFragment, name, args, topic } = contractInterface.parseLog(log) + + const { address } = log + + const parsedArgs = [] + + for (const i in eventFragment.inputs) parsedArgs.push( + encodeElement(eventFragment.inputs[i].type, args[i]) + ) + + return Object.assign({}, log, { + signature: remove0x(topic), + event: name, + address, + args: parsedArgs, + abi: JSON.parse(eventFragment.format('json')) + }) + } catch (e) { + logger.error(e) + return log } - return Object.assign(log, { event: name, address, args, abi: eventABI, signature }) } + return Object.freeze({ decodeLog, getEventAbi }) } diff --git a/src/lib/compiled_abi.json b/src/lib/compiled_abi.json index 8af592f..7c05686 100755 --- a/src/lib/compiled_abi.json +++ b/src/lib/compiled_abi.json @@ -7442,36 +7442,6 @@ "eventSignature": null } }, - { - "constant": true, - "inputs": [ - { - "name": "account", - "type": "address" - }, - { - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "__signatureData": { - "method": "supportsInterface(address,bytes4)", - "signature": "d905700708d92a2c508e53fc47c1f4f3376feb686c0c8272b33827f8f33874a3", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, { "constant": true, "inputs": [ @@ -9127,32 +9097,6 @@ "eventSignature": null } }, - { - "constant": true, - "inputs": [ - { - "name": "interfaceID", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "__signatureData": { - "method": "supportsInterface(bytes4)", - "signature": "01ffc9a7a5cef8baa21ed3c5c0d7e23accb804b619e9333b597f47a0d84076e2", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, { "anonymous": false, "inputs": [ diff --git a/test/events.spec.js b/test/events.spec.js index 65ca30f..9ff0ceb 100755 --- a/test/events.spec.js +++ b/test/events.spec.js @@ -55,13 +55,14 @@ describe('# decode events', function () { it(`addresses field must contain all addresses`, () => { const { abi, args, _addresses } = decoded abi.inputs.forEach((v, i) => { - const { type } = v + const { type, indexed } = v if (type === 'address') { assert.include(_addresses, args[i]) assert.isTrue(isAddress(args[i]), `invalid address ${args[i]}`) } - if (type === 'address[]') { - assert.includeMembers(_addresses, args[i]) + if (type === 'address[]' && indexed) { + assert.hasAllKeys(args[i], ['hash', '_isIndexed']) + assert.deepEqual(args[i]._isIndexed, true) } }) }) diff --git a/test/txs/02.expected.js b/test/txs/02.expected.js index 2337d9b..04e4491 100755 --- a/test/txs/02.expected.js +++ b/test/txs/02.expected.js @@ -9,7 +9,7 @@ export default { args: { from: '0xda1683aa3a4d16f76bcd3ef2c209ba332e533f4d', to: '0xb92675ccf00728fee1390a5d0d4ca594ecfb5c1f', - value: '0xfd5b62ad0505ecaed7000' + value: '0x0fd5b62ad0505ecaed7000' } }, { @@ -17,7 +17,7 @@ export default { args: { from: '0xda1683aa3a4d16f76bcd3ef2c209ba332e533f4d', to: '0xd5ae806315937698db2b9c13bbfc149e59dcda80', - value: '0x21c7eb0600ab814f06c00' + value: '0x021c7eb0600ab814f06c00' } }, { @@ -25,7 +25,7 @@ export default { args: { from: '0xda1683aa3a4d16f76bcd3ef2c209ba332e533f4d', to: '0xe4e962e97998a976a337752c978eff857379850c', - value: '0x10e3f5830055d347e2800' + value: '0x010e3f5830055d347e2800' } }, { @@ -33,7 +33,7 @@ export default { args: { from: '0xda1683aa3a4d16f76bcd3ef2c209ba332e533f4d', to: '0x2d9bea5f54e315dc40a14d4a2196687a15c6f9b2', - value: '0x19d51d22b537ece26dc00' + value: '0x019d51d22b537ece26dc00' } }, { diff --git a/test/txs/09.expected.js b/test/txs/09.expected.js index 2e4db2e..588c9ec 100755 --- a/test/txs/09.expected.js +++ b/test/txs/09.expected.js @@ -103,7 +103,7 @@ export default { 'args': [ '0x1c3227', '0x1c3228', - '0x2' + '0x02' ], 'topics': [ '0x07b5de8b7d8ad88823dc9d5d13a26a58dd5dad9d7431c971916e8a3e545ac2d0' diff --git a/test/txs/10.expected.js b/test/txs/10.expected.js index 18137a3..eb3e7f3 100644 --- a/test/txs/10.expected.js +++ b/test/txs/10.expected.js @@ -26,80 +26,69 @@ export default { '0xd5ff7b56a6b1bdf0e086e3eb950c50e392640280b04ef3b44616f1e67f9e3cd0', '0xa36085f69e2889c224210f603d836748e7dc0088', '0x170346689cc312d8e19959bc68c3ad03e72c9850', - '0x44598f17d36550500', + '0x044598f17d36550500', 'LINK', '0x1c0838a4b207ac67c10c120099fb33301d9c946239dc8742d165c298fc8dcea3', '0x90c0f24295b0261eb20440c77aba0b67c7026b2625a260074016bdfca5699a81', '0x2', '0x12', - '0x1' + '0x01' ], 'abi': { 'anonymous': false, 'inputs': [ { 'indexed': true, - 'internalType': 'address', 'name': 'sender', 'type': 'address' }, { 'indexed': true, - 'internalType': 'bytes32', 'name': 'transactionId', 'type': 'bytes32' }, { 'indexed': false, - 'internalType': 'address', 'name': 'originalTokenAddress', 'type': 'address' }, { 'indexed': false, - 'internalType': 'address', 'name': 'receiver', 'type': 'address' }, { 'indexed': false, - 'internalType': 'uint256', 'name': 'amount', 'type': 'uint256' }, { 'indexed': false, - 'internalType': 'string', 'name': 'symbol', 'type': 'string' }, { 'indexed': false, - 'internalType': 'bytes32', 'name': 'blockHash', 'type': 'bytes32' }, { 'indexed': true, - 'internalType': 'bytes32', 'name': 'transactionHash', 'type': 'bytes32' }, { 'indexed': false, - 'internalType': 'uint32', 'name': 'logIndex', 'type': 'uint32' }, { 'indexed': false, - 'internalType': 'uint8', 'name': 'decimals', 'type': 'uint8' }, { 'indexed': false, - 'internalType': 'uint256', 'name': 'granularity', 'type': 'uint256' } @@ -115,7 +104,7 @@ export default { ], 'eventId': '00fcaba00e0005b1939b94267283a68f', 'timestamp': 1595616049, - 'txStatus': '0x1' + 'txStatus': '0x01' }, { 'logIndex': 1, @@ -133,7 +122,7 @@ export default { 'abi': {}, 'eventId': '00fcaba00e0015b1939b94267283a68f', 'timestamp': 1595616049, - 'txStatus': '0x1', + 'txStatus': '0x01', 'event': null }, { @@ -152,7 +141,7 @@ export default { 'abi': {}, 'eventId': '00fcaba00e0025b1939b94267283a68f', 'timestamp': 1595616049, - 'txStatus': '0x1', + 'txStatus': '0x01', 'event': null }, { @@ -171,7 +160,7 @@ export default { 'abi': {}, 'eventId': '00fcaba00e0035b1939b94267283a68f', 'timestamp': 1595616049, - 'txStatus': '0x1', + 'txStatus': '0x01', 'event': null }, { @@ -195,7 +184,6 @@ export default { 'inputs': [ { 'indexed': true, - 'internalType': 'bytes32', 'name': 'transactionId', 'type': 'bytes32' } @@ -207,7 +195,7 @@ export default { '_addresses': [], 'eventId': '00fcaba00e0045b1939b94267283a68f', 'timestamp': 1595616049, - 'txStatus': '0x1' + 'txStatus': '0x01' } ] } diff --git a/test/txs/address_array_event.abi.json b/test/txs/address_array_event.abi.json new file mode 100644 index 0000000..436f705 --- /dev/null +++ b/test/txs/address_array_event.abi.json @@ -0,0 +1,873 @@ +[ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "oldOwnerFee", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newOwnerFee", + "type": "address" + } + ], + "name": "AddressFeeChange", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "oldFeeBasisPoints", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "feeBasisPoints", + "type": "uint256" + } + ], + "name": "FeesChange", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "oldSplitMultiplier", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newSplitMultiplier", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "oldSplitDivider", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newSplitDivider", + "type": "uint256" + } + ], + "name": "SplitChange", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address[]", + "name": "to", + "type": "address[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + } + ], + "name": "TransferBatch", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MINTER_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "PAUSER_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "newSplitMultiplier", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "newSplitDivider", + "type": "uint256" + } + ], + "name": "_setSplit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "addressFee", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "basisPointsRate", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "burnFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "accounts", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "name": "mintBatch", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "reverseSplit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newAddressFee", + "type": "address" + } + ], + "name": "setAddressFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "newBasisPoints", + "type": "uint256" + } + ], + "name": "setFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "split", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "splitDivider", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "splitMultiplier", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } +] \ No newline at end of file diff --git a/test/txs/address_array_event.expected.js b/test/txs/address_array_event.expected.js new file mode 100644 index 0000000..8f9ba54 --- /dev/null +++ b/test/txs/address_array_event.expected.js @@ -0,0 +1,42 @@ +import { result as tx } from './address_array_event.json' +import abi from './address_array_event.abi.json' + +export default { + tx, + abi, + expect: { + events: [ + { + event: 'TransferBatch', + address: '0x8859c08ed73bd06b2961ccc88160cb11a61d69f7', + args: { + from: '0x0000000000000000000000000000000000000000', + to: { _isIndexed: true, hash: '0x4cafb10118c6176cea8f9427e636ce907815ab55a3c441c407e2d6a939a6d84b' }, + values: ["0x038d7ea4c68000", "0x038d7ea4c68000"] + }, + abi: { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address[]" + }, + { + "indexed": false, + "name": "values", + "type": "uint256[]" + } + ], + "name": "TransferBatch", + "type": "event" + } + } + ] + } +} diff --git a/test/txs/address_array_event.json b/test/txs/address_array_event.json new file mode 100644 index 0000000..5b7ed4d --- /dev/null +++ b/test/txs/address_array_event.json @@ -0,0 +1,33 @@ +{ + "jsonrpc": "2.0", + "id": 666, + "result": { + "transactionHash": "0xfc799980ab99dd3158573cc1f0b4f339aa6b65fdbf32ea1be789c56c915b0720", + "transactionIndex": "0x4", + "blockHash": "0x04e5b6d6ca86377d67e62c77b0b733b03f61b2d464781a7b63334084ef2cd5fd", + "blockNumber": "0x1ced1a", + "cumulativeGasUsed": "0x57372", + "gasUsed": "0xd27b", + "contractAddress": null, + "logs": [ + { + "logIndex": "0x0", + "blockNumber": "0x1ced1a", + "blockHash": "0x04e5b6d6ca86377d67e62c77b0b733b03f61b2d464781a7b63334084ef2cd5fd", + "transactionHash": "0xfc799980ab99dd3158573cc1f0b4f339aa6b65fdbf32ea1be789c56c915b0720", + "transactionIndex": "0x4", + "address": "0x8859c08ed73bd06b2961ccc88160cb11a61d69f7", + "data": "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000038d7ea4c6800000000000000000000000000000000000000000000000000000038d7ea4c68000", + "topics": [ + "0xe4ae351459a24973b45ae503925eff96930420eaeda5bded0d67231a992d704d", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x4cafb10118c6176cea8f9427e636ce907815ab55a3c441c407e2d6a939a6d84b" + ] + } + ], + "from": "0x27598400a96d4ee85f86b0931e49cbc02add6df0", + "to": "0x8859c08ed73bd06b2961ccc88160cb11a61d69f7", + "status": "0x1", + "logsBloom": "0x00000080000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000020000000000000000000000000000000000000000000000000000010000000000000000000000000000020000000000000000000804000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002040000000000000000000000000000000000000000000000000000000000000000020000000000000000020000000000000000000000000000000000000000000000000" + } +} diff --git a/test/txs/address_array_event_2.abi.json b/test/txs/address_array_event_2.abi.json new file mode 100644 index 0000000..3e26003 --- /dev/null +++ b/test/txs/address_array_event_2.abi.json @@ -0,0 +1,777 @@ +[ + { + "inputs": [ + { + "internalType": "address", + "name": "timelock_", + "type": "address" + }, + { + "internalType": "address", + "name": "staking_", + "type": "address" + }, + { + "internalType": "address", + "name": "guardian_", + "type": "address" + }, + { + "internalType": "uint96", + "name": "_quorumPercentageVotes", + "type": "uint96" + }, + { + "internalType": "uint96", + "name": "_majorityPercentageVotes", + "type": "uint96" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "ProposalCanceled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "proposer", + "type": "address" + }, + { + "indexed": false, + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "string[]", + "name": "signatures", + "type": "string[]" + }, + { + "indexed": false, + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "startBlock", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "endBlock", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "name": "ProposalCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "ProposalExecuted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "ProposalQueued", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "voter", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bool", + "name": "support", + "type": "bool" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "votes", + "type": "uint256" + } + ], + "name": "VoteCast", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "BALLOT_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "DOMAIN_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "NAME", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "__abdicate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "__acceptAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "newPendingAdmin", + "type": "address" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "__executeSetTimelockPendingAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "newPendingAdmin", + "type": "address" + }, + { + "internalType": "uint256", + "name": "eta", + "type": "uint256" + } + ], + "name": "__queueSetTimelockPendingAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "cancel", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "support", + "type": "bool" + } + ], + "name": "castVote", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "support", + "type": "bool" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "castVoteBySig", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "execute", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "getActions", + "outputs": [ + { + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "string[]", + "name": "signatures", + "type": "string[]" + }, + { + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "voter", + "type": "address" + } + ], + "name": "getReceipt", + "outputs": [ + { + "components": [ + { + "internalType": "bool", + "name": "hasVoted", + "type": "bool" + }, + { + "internalType": "bool", + "name": "support", + "type": "bool" + }, + { + "internalType": "uint96", + "name": "votes", + "type": "uint96" + } + ], + "internalType": "struct GovernorAlpha.Receipt", + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "guardian", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "latestProposalIds", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "majorityPercentageVotes", + "outputs": [ + { + "internalType": "uint96", + "name": "", + "type": "uint96" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "proposalCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "proposalMaxOperations", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "proposalThreshold", + "outputs": [ + { + "internalType": "uint96", + "name": "", + "type": "uint96" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "proposals", + "outputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint32", + "name": "startBlock", + "type": "uint32" + }, + { + "internalType": "uint32", + "name": "endBlock", + "type": "uint32" + }, + { + "internalType": "uint96", + "name": "forVotes", + "type": "uint96" + }, + { + "internalType": "uint96", + "name": "againstVotes", + "type": "uint96" + }, + { + "internalType": "uint96", + "name": "quorum", + "type": "uint96" + }, + { + "internalType": "uint96", + "name": "majorityPercentage", + "type": "uint96" + }, + { + "internalType": "uint64", + "name": "eta", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "startTime", + "type": "uint64" + }, + { + "internalType": "bool", + "name": "canceled", + "type": "bool" + }, + { + "internalType": "bool", + "name": "executed", + "type": "bool" + }, + { + "internalType": "address", + "name": "proposer", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address[]", + "name": "targets", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "string[]", + "name": "signatures", + "type": "string[]" + }, + { + "internalType": "bytes[]", + "name": "calldatas", + "type": "bytes[]" + }, + { + "internalType": "string", + "name": "description", + "type": "string" + } + ], + "name": "propose", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "queue", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "quorumPercentageVotes", + "outputs": [ + { + "internalType": "uint96", + "name": "", + "type": "uint96" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "quorumVotes", + "outputs": [ + { + "internalType": "uint96", + "name": "", + "type": "uint96" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "staking", + "outputs": [ + { + "internalType": "contract IStaking", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "proposalId", + "type": "uint256" + } + ], + "name": "state", + "outputs": [ + { + "internalType": "enum GovernorAlpha.ProposalState", + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "timelock", + "outputs": [ + { + "internalType": "contract ITimelock", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "votingDelay", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "votingPeriod", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } +] diff --git a/test/txs/address_array_event_2.expected.js b/test/txs/address_array_event_2.expected.js new file mode 100644 index 0000000..890dcac --- /dev/null +++ b/test/txs/address_array_event_2.expected.js @@ -0,0 +1,79 @@ +import { result as tx } from './address_array_event_2.json' +import abi from './address_array_event_2.abi.json' + +export default { + tx, + abi, + expect: { + events: [ + { + event: 'ProposalCreated', + address: '0x6e22f07d4edc6b13b07b7369f11371e7e5286de6', + _addresses: ['0x0f39e7af6810a2b73a973c3167755930b1266811', '0xe8276a1680cb970c2334b3201044ddf7c492f52a'], + args: { + id: '0x06', + propose: '0x0f39e7af6810a2b73a973c3167755930b1266811', + targets: '0xe8276a1680cb970c2334b3201044ddf7c492f52a', + values: '0x00', + signatures: 'transferTokens(address,address,uint256)', + calldatas: '0x000000000000000000000000189ecd23e9e34cfc07bfc3b7f5711a23f43f8a570000000000000000000000006a9a07972d07e58f0daf5122d11e069288a375fb00000000000000000000000000000000000000000001a784379d99db42000000', + startBlock: '0x2501d8', + endBlock: '0x250d18', + description: 'SIP-0007: Origins Pre-Sale. Details: https://github.com/DistributedCollective/SIPS/blob/02f836980ee6a4b2992ffb1576e42655ac6fc241/SIP-0006.md , sha256: b6807ded0bd18ddd9d29e189179e23b6d63ef86e93b79143ed03c563770a490d' + }, + abi: { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "name": "proposer", + "type": "address" + }, + { + "indexed": false, + "name": "targets", + "type": "address[]" + }, + { + "indexed": false, + "name": "values", + "type": "uint256[]" + }, + { + "indexed": false, + "name": "signatures", + "type": "string[]" + }, + { + "indexed": false, + "name": "calldatas", + "type": "bytes[]" + }, + { + "indexed": false, + "name": "startBlock", + "type": "uint256" + }, + { + "indexed": false, + "name": "endBlock", + "type": "uint256" + }, + { + "indexed": false, + "name": "description", + "type": "string" + } + ], + "name": "ProposalCreated", + "type": "event" + } + } + ] + } +} diff --git a/test/txs/address_array_event_2.json b/test/txs/address_array_event_2.json new file mode 100644 index 0000000..67346b3 --- /dev/null +++ b/test/txs/address_array_event_2.json @@ -0,0 +1,31 @@ +{ + "jsonrpc": "2.0", + "id": 666, + "result": { + "transactionHash": "0x74c1f7f5c7e1c845561a6a57d2a3bd86a4bdd805c5c0315e2df020b988f7578d", + "transactionIndex": "0x0", + "blockHash": "0x0cabf8c87b257854929ee41b2e77c89db730d32f99bf7ec34a5f1ce732bc14df", + "blockNumber": "0x2501d7", + "cumulativeGasUsed": "0xc69b1", + "gasUsed": "0xc69b1", + "contractAddress": null, + "logs": [ + { + "logIndex": "0x0", + "blockNumber": "0x2501d7", + "blockHash": "0x0cabf8c87b257854929ee41b2e77c89db730d32f99bf7ec34a5f1ce732bc14df", + "transactionHash": "0x74c1f7f5c7e1c845561a6a57d2a3bd86a4bdd805c5c0315e2df020b988f7578d", + "transactionIndex": "0x0", + "address": "0x6e22f07d4edc6b13b07b7369f11371e7e5286de6", + "data": "0x00000000000000000000000000000000000000000000000000000000000000060000000000000000000000000f39e7af6810a2b73a973c3167755930b12668110000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000002501d80000000000000000000000000000000000000000000000000000000000250d1800000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000e8276a1680cb970c2334b3201044ddf7c492f52a000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000277472616e73666572546f6b656e7328616464726573732c616464726573732c75696e743235362900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000189ecd23e9e34cfc07bfc3b7f5711a23f43f8a570000000000000000000000006a9a07972d07e58f0daf5122d11e069288a375fb00000000000000000000000000000000000000000001a784379d99db4200000000000000000000000000000000000000000000000000000000000000000000d75349502d303030373a204f726967696e73205072652d53616c652e2044657461696c733a2068747470733a2f2f6769746875622e636f6d2f4469737472696275746564436f6c6c6563746976652f534950532f626c6f622f303266383336393830656536613462323939326666623135373665343236353561633666633234312f5349502d303030362e6d64202c207368613235363a2062363830376465643062643138646464396432396531383931373965323362366436336566383665393362373931343365643033633536333737306134393064000000000000000000", + "topics": [ + "0x7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e0" + ] + } + ], + "from": "0x0f39e7af6810a2b73a973c3167755930b1266811", + "to": "0x6e22f07d4edc6b13b07b7369f11371e7e5286de6", + "status": "0x1", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000020000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } +} \ No newline at end of file diff --git a/test/txs/index.js b/test/txs/index.js index 5e8d21e..84505ac 100755 --- a/test/txs/index.js +++ b/test/txs/index.js @@ -8,4 +8,6 @@ import tx7 from './bridge_04.expected' import tx8 from './bridge_05.expected' import tx9 from './09.expected' import tx10 from './10.expected' -export default [tx1, tx2, tx3, tx4, tx5, tx6, tx7, tx8, tx9, tx10] +import tx11 from './address_array_event.expected' // indexed address[] event +import tx12 from './address_array_event_2.expected' // address[] event (not indexed) +export default [tx1, tx2, tx3, tx4, tx5, tx6, tx7, tx8, tx9, tx10, tx11, tx12] From 3236479a52e896c4136c2999881de40f777cf298 Mon Sep 17 00:00:00 2001 From: Sergio Date: Tue, 14 Mar 2023 15:24:52 -0300 Subject: [PATCH 06/33] feat: upgradeable erc20 token support --- dist/lib/ContractParser.js | 67 ++++++++++++++++++++++++++++++----- dist/lib/EventDecoder.js | 6 ++-- package.json | 2 +- src/lib/ContractParser.js | 71 ++++++++++++++++++++++++++++++++------ src/lib/EventDecoder.js | 10 +++--- 5 files changed, 129 insertions(+), 27 deletions(-) diff --git a/dist/lib/ContractParser.js b/dist/lib/ContractParser.js index 8c97379..8548080 100755 --- a/dist/lib/ContractParser.js +++ b/dist/lib/ContractParser.js @@ -14,6 +14,17 @@ var _utils = require("./utils");function _interopRequireDefault(obj) {return obj +function mapInterfacesToERCs(interfaces) { + interfaces = Object.keys(interfaces). + filter(k => interfaces[k] === true). + map(t => _types.contractsInterfaces[t] || t); + return interfaces; +} + +function hasMethodSelector(txInputData, selector) { + return selector && txInputData ? txInputData.includes(selector) : null; +} + class ContractParser { constructor({ abi, log, initConfig, nod3 } = {}) { initConfig = initConfig || {}; @@ -147,17 +158,36 @@ class ContractParser { }, {}); } - hasMethodSelector(txInputData, selector) { - return selector && txInputData ? txInputData.includes(selector) : null; - } + getMethodsBySelectors(txInputData) { let methods = this.getMethodsSelectors(); return Object.keys(methods). - filter(method => this.hasMethodSelector(txInputData, methods[method]) === true); + filter(method => hasMethodSelector(txInputData, methods[method]) === true); } async getContractInfo(txInputData, contract) { + let { interfaces, methods } = await this.getContractImplementedInterfaces(txInputData, contract); + + interfaces = mapInterfacesToERCs(interfaces); + return { methods, interfaces }; + } + + async getContractInfoIfProxy(contractAddress) { + const { isUpgradeable, impContractAddress } = await this.checkForUpgradeableContract(contractAddress); + if (isUpgradeable) { + // manual check required + const proxyContractBytecode = await this.getContractCodeFromNode(impContractAddress); + const methods = this.getMethodsBySelectors(proxyContractBytecode); + let interfaces = this.getInterfacesByMethods(methods); + + interfaces = mapInterfacesToERCs(interfaces); + return { methods, interfaces }; + } + return { methods: [], interfaces: [] }; + } + + async getContractImplementedInterfaces(txInputData, contract) { let methods = this.getMethodsBySelectors(txInputData); let isErc165 = false; // skip non-erc165 contracts @@ -165,14 +195,33 @@ class ContractParser { isErc165 = await this.implementsErc165(contract); } let interfaces; - if (isErc165) interfaces = await this.getInterfacesERC165(contract);else - interfaces = this.getInterfacesByMethods(methods); - interfaces = Object.keys(interfaces). - filter(k => interfaces[k] === true). - map(t => _types.contractsInterfaces[t] || t); + if (isErc165) { + interfaces = await this.getInterfacesERC165(contract); + } else { + interfaces = this.getInterfacesByMethods(methods); + } + return { methods, interfaces }; } + async checkForUpgradeableContract(contractAddress) { + // check For ERC1967 + // https://eips.ethereum.org/EIPS/eip-1967 + // 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc storage address where the implementation address is stored + const storedValue = await this.nod3.eth.getStorageAt(contractAddress, '0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc'); + const isUpgradeable = storedValue !== '0x0'; + if (isUpgradeable) { + const impContractAddress = `0x${storedValue.slice(-40)}`; // extract contract address + return { isUpgradeable, impContractAddress }; + } else { + return { isUpgradeable, impContractAddress: storedValue }; + } + } + + async getContractCodeFromNode(contractAddress) { + return this.nod3.eth.getContractCodeAt(contractAddress); + } + async getInterfacesERC165(contract) { let ifaces = {}; let keys = Object.keys(_interfacesIds.default); diff --git a/dist/lib/EventDecoder.js b/dist/lib/EventDecoder.js index 599e81c..dcce5aa 100755 --- a/dist/lib/EventDecoder.js +++ b/dist/lib/EventDecoder.js @@ -45,9 +45,11 @@ function EventDecoder(abi, logger) { const parsedArgs = []; - for (const i in eventFragment.inputs) parsedArgs.push( - encodeElement(eventFragment.inputs[i].type, args[i])); + for (const i in eventFragment.inputs) { + parsedArgs.push( + encodeElement(eventFragment.inputs[i].type, args[i])); + } return Object.assign({}, log, { signature: (0, _rskUtils.remove0x)(topic), diff --git a/package.json b/package.json index 16caff0..4479051 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@rsksmart/rsk-contract-parser", - "version": "0.0.11", + "version": "0.0.12", "description": "", "main": "dist/index.js", "scripts": { diff --git a/src/lib/ContractParser.js b/src/lib/ContractParser.js index 5d38b4c..fb9f495 100755 --- a/src/lib/ContractParser.js +++ b/src/lib/ContractParser.js @@ -14,6 +14,17 @@ import { soliditySignature } from './utils' +function mapInterfacesToERCs (interfaces) { + interfaces = Object.keys(interfaces) + .filter(k => interfaces[k] === true) + .map(t => contractsInterfaces[t] || t) + return interfaces +} + +function hasMethodSelector (txInputData, selector) { + return (selector && txInputData) ? txInputData.includes(selector) : null +} + export class ContractParser { constructor ({ abi, log, initConfig, nod3 } = {}) { initConfig = initConfig || {} @@ -89,8 +100,8 @@ export class ContractParser { value.forEach(v => _addresses.push(v)) } else { let i = 0 - while (2 + (i+1) * 40 <= value.length) { - _addresses.push('0x' + value.slice(2 + i * 40, 2 + (i+1) * 40)) + while (2 + (i + 1) * 40 <= value.length) { + _addresses.push('0x' + value.slice(2 + i * 40, 2 + (i + 1) * 40)) i++ } } @@ -147,17 +158,36 @@ export class ContractParser { }, {}) } - hasMethodSelector (txInputData, selector) { - return (selector && txInputData) ? txInputData.includes(selector) : null - } + getMethodsBySelectors (txInputData) { let methods = this.getMethodsSelectors() return Object.keys(methods) - .filter(method => this.hasMethodSelector(txInputData, methods[method]) === true) + .filter(method => hasMethodSelector(txInputData, methods[method]) === true) } async getContractInfo (txInputData, contract) { + let { interfaces, methods } = await this.getContractImplementedInterfaces(txInputData, contract) + + interfaces = mapInterfacesToERCs(interfaces) + return { methods, interfaces } + } + + async getContractInfoIfProxy (contractAddress) { + const { isUpgradeable, impContractAddress } = await this.checkForUpgradeableContract(contractAddress) + if (isUpgradeable) { + // manual check required + const proxyContractBytecode = await this.getContractCodeFromNode(impContractAddress) + const methods = this.getMethodsBySelectors(proxyContractBytecode) + let interfaces = this.getInterfacesByMethods(methods) + + interfaces = mapInterfacesToERCs(interfaces) + return { methods, interfaces } + } + return {methods: [], interfaces: []} + } + + async getContractImplementedInterfaces (txInputData, contract) { let methods = this.getMethodsBySelectors(txInputData) let isErc165 = false // skip non-erc165 contracts @@ -165,14 +195,33 @@ export class ContractParser { isErc165 = await this.implementsErc165(contract) } let interfaces - if (isErc165) interfaces = await this.getInterfacesERC165(contract) - else interfaces = this.getInterfacesByMethods(methods) - interfaces = Object.keys(interfaces) - .filter(k => interfaces[k] === true) - .map(t => contractsInterfaces[t] || t) + if (isErc165) { + interfaces = await this.getInterfacesERC165(contract) + } else { + interfaces = this.getInterfacesByMethods(methods) + } + return { methods, interfaces } } + async checkForUpgradeableContract (contractAddress) { + // check For ERC1967 + // https://eips.ethereum.org/EIPS/eip-1967 + // 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc storage address where the implementation address is stored + const storedValue = await this.nod3.eth.getStorageAt(contractAddress, '0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc') + const isUpgradeable = storedValue !== '0x0' + if (isUpgradeable) { + const impContractAddress = `0x${storedValue.slice(-40)}` // extract contract address + return { isUpgradeable, impContractAddress } + } else { + return { isUpgradeable, impContractAddress: storedValue} + } + } + + async getContractCodeFromNode (contractAddress) { + return this.nod3.eth.getContractCodeAt(contractAddress) + } + async getInterfacesERC165 (contract) { let ifaces = {} let keys = Object.keys(interfacesIds) diff --git a/src/lib/EventDecoder.js b/src/lib/EventDecoder.js index cf3da31..92bf5f1 100755 --- a/src/lib/EventDecoder.js +++ b/src/lib/EventDecoder.js @@ -23,7 +23,7 @@ function EventDecoder (abi, logger) { return decoded.toHexString() } const res = add0x(Buffer.isBuffer(decoded) ? bufferToHex(decoded) : decoded.toString(16)) - if(type === 'address' || type === 'address[]') return res.toLowerCase() + if (type === 'address' || type === 'address[]') return res.toLowerCase() return res } @@ -45,9 +45,11 @@ function EventDecoder (abi, logger) { const parsedArgs = [] - for (const i in eventFragment.inputs) parsedArgs.push( - encodeElement(eventFragment.inputs[i].type, args[i]) - ) + for (const i in eventFragment.inputs) { + parsedArgs.push( + encodeElement(eventFragment.inputs[i].type, args[i]) + ) + } return Object.assign({}, log, { signature: remove0x(topic), From ca2685e766848b4cf0a4c8411aae15a6d4a0fb71 Mon Sep 17 00:00:00 2001 From: Sergio Date: Mon, 20 Mar 2023 16:14:11 -0300 Subject: [PATCH 07/33] Update src/lib/ContractParser.js Co-authored-by: Ilan <36084092+ilanolkies@users.noreply.github.com> --- src/lib/ContractParser.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/lib/ContractParser.js b/src/lib/ContractParser.js index fb9f495..1291662 100755 --- a/src/lib/ContractParser.js +++ b/src/lib/ContractParser.js @@ -15,10 +15,9 @@ import { } from './utils' function mapInterfacesToERCs (interfaces) { - interfaces = Object.keys(interfaces) + return Object.keys(interfaces) .filter(k => interfaces[k] === true) .map(t => contractsInterfaces[t] || t) - return interfaces } function hasMethodSelector (txInputData, selector) { From 498594e0465845df34d8e18f0415dba1f7efd22b Mon Sep 17 00:00:00 2001 From: Sergio Date: Mon, 20 Mar 2023 16:14:57 -0300 Subject: [PATCH 08/33] Update src/lib/ContractParser.js Co-authored-by: Ilan <36084092+ilanolkies@users.noreply.github.com> --- src/lib/ContractParser.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/ContractParser.js b/src/lib/ContractParser.js index 1291662..2a7456f 100755 --- a/src/lib/ContractParser.js +++ b/src/lib/ContractParser.js @@ -21,7 +21,7 @@ function mapInterfacesToERCs (interfaces) { } function hasMethodSelector (txInputData, selector) { - return (selector && txInputData) ? txInputData.includes(selector) : null + return selector && txInputData && txInputData.includes(selector) } export class ContractParser { From 3a935349aeef1f380a92f1ac7be36ffcde0156ba Mon Sep 17 00:00:00 2001 From: Sergio Date: Mon, 20 Mar 2023 17:01:31 -0300 Subject: [PATCH 09/33] fix: pr change requests applied --- src/lib/ContractParser.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/ContractParser.js b/src/lib/ContractParser.js index 2a7456f..adbccc9 100755 --- a/src/lib/ContractParser.js +++ b/src/lib/ContractParser.js @@ -172,8 +172,8 @@ export class ContractParser { return { methods, interfaces } } - async getContractInfoIfProxy (contractAddress) { - const { isUpgradeable, impContractAddress } = await this.checkForUpgradeableContract(contractAddress) + async getEIP1967Info (contractAddress) { + const { isUpgradeable, impContractAddress } = await this.isERC1967(contractAddress) if (isUpgradeable) { // manual check required const proxyContractBytecode = await this.getContractCodeFromNode(impContractAddress) @@ -203,7 +203,7 @@ export class ContractParser { return { methods, interfaces } } - async checkForUpgradeableContract (contractAddress) { + async isERC1967 (contractAddress) { // check For ERC1967 // https://eips.ethereum.org/EIPS/eip-1967 // 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc storage address where the implementation address is stored From d93fabfd9204df9b6935513856ea5e37d30623df Mon Sep 17 00:00:00 2001 From: Sergio Date: Mon, 20 Mar 2023 17:30:28 -0300 Subject: [PATCH 10/33] fix: adds test --- dist/lib/ContractParser.js | 11 ++++----- test/ContractParser.spec.js | 48 +++++++++++++++++++++---------------- 2 files changed, 32 insertions(+), 27 deletions(-) diff --git a/dist/lib/ContractParser.js b/dist/lib/ContractParser.js index 8548080..4501e9a 100755 --- a/dist/lib/ContractParser.js +++ b/dist/lib/ContractParser.js @@ -15,14 +15,13 @@ var _utils = require("./utils");function _interopRequireDefault(obj) {return obj function mapInterfacesToERCs(interfaces) { - interfaces = Object.keys(interfaces). + return Object.keys(interfaces). filter(k => interfaces[k] === true). map(t => _types.contractsInterfaces[t] || t); - return interfaces; } function hasMethodSelector(txInputData, selector) { - return selector && txInputData ? txInputData.includes(selector) : null; + return selector && txInputData && txInputData.includes(selector); } class ContractParser { @@ -173,8 +172,8 @@ class ContractParser { return { methods, interfaces }; } - async getContractInfoIfProxy(contractAddress) { - const { isUpgradeable, impContractAddress } = await this.checkForUpgradeableContract(contractAddress); + async getEIP1967Info(contractAddress) { + const { isUpgradeable, impContractAddress } = await this.isERC1967(contractAddress); if (isUpgradeable) { // manual check required const proxyContractBytecode = await this.getContractCodeFromNode(impContractAddress); @@ -204,7 +203,7 @@ class ContractParser { return { methods, interfaces }; } - async checkForUpgradeableContract(contractAddress) { + async isERC1967(contractAddress) { // check For ERC1967 // https://eips.ethereum.org/EIPS/eip-1967 // 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc storage address where the implementation address is stored diff --git a/test/ContractParser.spec.js b/test/ContractParser.spec.js index 13ff2c8..2817ecb 100644 --- a/test/ContractParser.spec.js +++ b/test/ContractParser.spec.js @@ -1,27 +1,33 @@ -import { assert } from 'chai' -import { ContractParser } from '../src/lib/ContractParser' -import nod3 from '../src/lib/nod3Connect' +import { assert } from "chai"; +import { ContractParser } from "../src/lib/ContractParser"; +import nod3 from "../src/lib/nod3Connect"; -const contracts = [ - '0xebea27d994371cd0cb9896ae4c926bc5221f6317'] +const contracts = ["0xebea27d994371cd0cb9896ae4c926bc5221f6317"]; -const parser = new ContractParser({ nod3 }) +const parser = new ContractParser({ nod3 }); -describe('# Network', function () { - it('should be connected to RSK testnet', async function () { - let net = await nod3.net.version() - console.log(net) - assert.equal(net.id, '31') - }) -}) - -describe('Contract parser', function () { +describe("# Network", function () { + it("should be connected to RSK testnet", async function () { + let net = await nod3.net.version(); + console.log(net); + assert.equal(net.id, "31"); + }); +}); +describe("Contract parser", function () { for (let address of contracts) { - it('should return the token data', async () => { - let contract = parser.makeContract(address) - const info = await parser.getTokenData(contract) - console.log({ info }) - }) + it("should return the token data", async () => { + let contract = parser.makeContract(address); + const info = await parser.getTokenData(contract); + console.log({ info }); + }); } -}) + + it("should detect ERC1967 proxy", async () => { + // let contract = parser.makeContract("0xc41fe753ff1671b271e34cf1a5ab45c540192abd") + const info = await parser.getEIP1967Info( + "0xc41fe753ff1671b271e34cf1a5ab45c540192abd" + ); + console.log("ERC1967", info); + }); +}); From c2bd3b917e092daa40bc52e158a5b1d142b1b861 Mon Sep 17 00:00:00 2001 From: Sergio Date: Mon, 20 Mar 2023 17:53:44 -0300 Subject: [PATCH 11/33] fix: test --- test/ContractParser.spec.js | 1 - 1 file changed, 1 deletion(-) diff --git a/test/ContractParser.spec.js b/test/ContractParser.spec.js index 2817ecb..d15e51a 100644 --- a/test/ContractParser.spec.js +++ b/test/ContractParser.spec.js @@ -24,7 +24,6 @@ describe("Contract parser", function () { } it("should detect ERC1967 proxy", async () => { - // let contract = parser.makeContract("0xc41fe753ff1671b271e34cf1a5ab45c540192abd") const info = await parser.getEIP1967Info( "0xc41fe753ff1671b271e34cf1a5ab45c540192abd" ); From 7810b62da844d00646a82c92e405900c86319397 Mon Sep 17 00:00:00 2001 From: Sergio Date: Mon, 20 Mar 2023 17:55:38 -0300 Subject: [PATCH 12/33] fix: test --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1ebc7d6..7da4ecc 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,7 +9,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 - run: npm ci - - run: npm run test:local + - run: npm run test - run: mv dist/ dist2/ - run: npm run build - run: diff -arq dist/ dist2/ From 6338c577f0ef06f826f742834683ff6a869163dc Mon Sep 17 00:00:00 2001 From: Sergio Date: Mon, 20 Mar 2023 17:59:21 -0300 Subject: [PATCH 13/33] fix: test --- .github/workflows/test.yml | 2 +- test/ContractParser.spec.js | 7 ------- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7da4ecc..1ebc7d6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,7 +9,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 - run: npm ci - - run: npm run test + - run: npm run test:local - run: mv dist/ dist2/ - run: npm run build - run: diff -arq dist/ dist2/ diff --git a/test/ContractParser.spec.js b/test/ContractParser.spec.js index d15e51a..4fbd83a 100644 --- a/test/ContractParser.spec.js +++ b/test/ContractParser.spec.js @@ -22,11 +22,4 @@ describe("Contract parser", function () { console.log({ info }); }); } - - it("should detect ERC1967 proxy", async () => { - const info = await parser.getEIP1967Info( - "0xc41fe753ff1671b271e34cf1a5ab45c540192abd" - ); - console.log("ERC1967", info); - }); }); From f422ffa54901b452a513061fb16b16f6774ed115 Mon Sep 17 00:00:00 2001 From: Sergio Date: Tue, 21 Mar 2023 17:59:34 -0300 Subject: [PATCH 14/33] feat: ERC1967 upgradeable erc20 --- dist/lib/ContractParser.js | 2 +- package-lock.json | 18 +++++++++--------- package.json | 2 +- src/lib/ContractParser.js | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/dist/lib/ContractParser.js b/dist/lib/ContractParser.js index 4501e9a..c0ff151 100755 --- a/dist/lib/ContractParser.js +++ b/dist/lib/ContractParser.js @@ -181,7 +181,7 @@ class ContractParser { let interfaces = this.getInterfacesByMethods(methods); interfaces = mapInterfacesToERCs(interfaces); - return { methods, interfaces }; + return { methods, interfaces: [...interfaces, 'ERC1967'] }; } return { methods: [], interfaces: [] }; } diff --git a/package-lock.json b/package-lock.json index b2a16d6..640a8a3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,16 +1,16 @@ { "name": "@rsksmart/rsk-contract-parser", - "version": "0.0.10", + "version": "0.0.12", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@rsksmart/rsk-contract-parser", - "version": "0.0.10", + "version": "0.0.12", "license": "MIT", "dependencies": { "@ethersproject/abi": "^5.7.0", - "@rsksmart/nod3": "^0.4.1", + "@rsksmart/nod3": "^0.5.0", "@rsksmart/rsk-utils": "^1.1.0", "bs58": "^4.0.1", "secp256k1": "^3.7.1" @@ -1775,9 +1775,9 @@ } }, "node_modules/@rsksmart/nod3": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@rsksmart/nod3/-/nod3-0.4.1.tgz", - "integrity": "sha512-REzlOa1MgYIuL35ybsSgzG+EbLA0rT2Zu/upLAMGVymXBhzz3l6Mi14dZdjQxCglJTlatj1nw+Lx9qDRc/EB9g==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@rsksmart/nod3/-/nod3-0.5.0.tgz", + "integrity": "sha512-JARCT8vpHm4jd+fL0m0uhISAoa2Vuz//5PFbBZkBSHQLs2omEn6cWABDtCw1Zvu6kTwALty9sYPODKc3do8lcQ==", "bin": { "nod3-cli": "dist/cli/nod3-cli.js" } @@ -9652,9 +9652,9 @@ } }, "@rsksmart/nod3": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@rsksmart/nod3/-/nod3-0.4.1.tgz", - "integrity": "sha512-REzlOa1MgYIuL35ybsSgzG+EbLA0rT2Zu/upLAMGVymXBhzz3l6Mi14dZdjQxCglJTlatj1nw+Lx9qDRc/EB9g==" + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@rsksmart/nod3/-/nod3-0.5.0.tgz", + "integrity": "sha512-JARCT8vpHm4jd+fL0m0uhISAoa2Vuz//5PFbBZkBSHQLs2omEn6cWABDtCw1Zvu6kTwALty9sYPODKc3do8lcQ==" }, "@rsksmart/rsk-utils": { "version": "1.1.0", diff --git a/package.json b/package.json index 4479051..a596ffe 100755 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ }, "dependencies": { "@ethersproject/abi": "^5.7.0", - "@rsksmart/nod3": "^0.4.1", + "@rsksmart/nod3": "^0.5.0", "@rsksmart/rsk-utils": "^1.1.0", "bs58": "^4.0.1", "secp256k1": "^3.7.1" diff --git a/src/lib/ContractParser.js b/src/lib/ContractParser.js index adbccc9..57777b6 100755 --- a/src/lib/ContractParser.js +++ b/src/lib/ContractParser.js @@ -181,7 +181,7 @@ export class ContractParser { let interfaces = this.getInterfacesByMethods(methods) interfaces = mapInterfacesToERCs(interfaces) - return { methods, interfaces } + return { methods, interfaces: [...interfaces, 'ERC1967'] } } return {methods: [], interfaces: []} } From 0812270c93d62568b0fc16ff2223efedc3be7472 Mon Sep 17 00:00:00 2001 From: Dario Date: Fri, 28 Jul 2023 17:34:40 -0300 Subject: [PATCH 15/33] feat: add support for the different bridge ABIs through historical Rootstock releases --- dist/lib/ContractParser.js | 6 +- .../nativeContracts/NativeContractsDecoder.js | 9 +- .../nativeContracts/bridge-fingerroot.json | 1246 +++++++++++++++++ dist/lib/nativeContracts/bridge-hop.json | 1229 ++++++++++++++++ dist/lib/nativeContracts/bridge-iris.json | 1157 +++++++++++++++ dist/lib/nativeContracts/bridge-orchid.json | 409 ++++++ .../{bridge.json => bridge-papyrus.json} | 2 +- dist/lib/nativeContracts/bridge-wasabi.json | 508 +++++++ dist/lib/nativeContracts/bridgeAbi.js | 55 +- src/lib/ContractParser.js | 8 +- .../nativeContracts/NativeContractsDecoder.js | 7 +- .../nativeContracts/bridge-fingerroot.json | 1246 +++++++++++++++++ src/lib/nativeContracts/bridge-hop.json | 1229 ++++++++++++++++ src/lib/nativeContracts/bridge-iris.json | 1157 +++++++++++++++ src/lib/nativeContracts/bridge-orchid.json | 409 ++++++ .../{bridge.json => bridge-papyrus.json} | 2 +- src/lib/nativeContracts/bridge-wasabi.json | 508 +++++++ src/lib/nativeContracts/bridgeAbi.js | 55 +- 18 files changed, 9218 insertions(+), 24 deletions(-) create mode 100644 dist/lib/nativeContracts/bridge-fingerroot.json create mode 100644 dist/lib/nativeContracts/bridge-hop.json create mode 100644 dist/lib/nativeContracts/bridge-iris.json create mode 100644 dist/lib/nativeContracts/bridge-orchid.json rename dist/lib/nativeContracts/{bridge.json => bridge-papyrus.json} (99%) create mode 100644 dist/lib/nativeContracts/bridge-wasabi.json create mode 100644 src/lib/nativeContracts/bridge-fingerroot.json create mode 100644 src/lib/nativeContracts/bridge-hop.json create mode 100644 src/lib/nativeContracts/bridge-iris.json create mode 100644 src/lib/nativeContracts/bridge-orchid.json rename src/lib/nativeContracts/{bridge.json => bridge-papyrus.json} (99%) create mode 100644 src/lib/nativeContracts/bridge-wasabi.json diff --git a/dist/lib/ContractParser.js b/dist/lib/ContractParser.js index c0ff151..8af52b4 100755 --- a/dist/lib/ContractParser.js +++ b/dist/lib/ContractParser.js @@ -25,7 +25,7 @@ function hasMethodSelector(txInputData, selector) { } class ContractParser { - constructor({ abi, log, initConfig, nod3 } = {}) { + constructor({ abi, log, initConfig, nod3, txBlockNumber } = {}) { initConfig = initConfig || {}; const { net } = initConfig; this.netId = net ? net.id : undefined; @@ -35,7 +35,7 @@ class ContractParser { this.nativeContracts = (0, _NativeContracts.default)(initConfig); if (this.netId) { let bitcoinNetwork = _types.bitcoinRskNetWorks[this.netId]; - this.nativeContractsEvents = (0, _NativeContractsDecoder.default)({ bitcoinNetwork }); + this.nativeContractsEvents = (0, _NativeContractsDecoder.default)({ bitcoinNetwork, txBlockNumber }); } } @@ -157,8 +157,6 @@ class ContractParser { }, {}); } - - getMethodsBySelectors(txInputData) { let methods = this.getMethodsSelectors(); return Object.keys(methods). diff --git a/dist/lib/nativeContracts/NativeContractsDecoder.js b/dist/lib/nativeContracts/NativeContractsDecoder.js index 339bc81..d9bdff8 100644 --- a/dist/lib/nativeContracts/NativeContractsDecoder.js +++ b/dist/lib/nativeContracts/NativeContractsDecoder.js @@ -1,12 +1,11 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = NativeContractsEventDecoder;exports.ABI = void 0;var _NativeContractsEvents = _interopRequireDefault(require("./NativeContractsEvents")); +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = NativeContractsEventDecoder;var _NativeContractsEvents = _interopRequireDefault(require("./NativeContractsEvents")); var _EventDecoder = _interopRequireDefault(require("../EventDecoder")); -var _bridgeAbi = _interopRequireDefault(require("./bridgeAbi")); +var _bridgeAbi = require("./bridgeAbi"); var _utils = require("../utils");function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} -const ABI = (0, _utils.addSignatureDataToAbi)(_bridgeAbi.default);exports.ABI = ABI; - -function NativeContractsEventDecoder({ bitcoinNetwork }) { +function NativeContractsEventDecoder({ bitcoinNetwork, txBlockNumber }) { const nativeDecoder = (0, _NativeContractsEvents.default)({ bitcoinNetwork }); + const ABI = (0, _utils.addSignatureDataToAbi)((0, _bridgeAbi.getBridgeAbi)({ txBlockNumber, bitcoinNetwork })); const solidityDecoder = (0, _EventDecoder.default)(ABI); const getEventDecoder = log => { diff --git a/dist/lib/nativeContracts/bridge-fingerroot.json b/dist/lib/nativeContracts/bridge-fingerroot.json new file mode 100644 index 0000000..82bc596 --- /dev/null +++ b/dist/lib/nativeContracts/bridge-fingerroot.json @@ -0,0 +1,1246 @@ +[ + { + "name": "getBtcBlockchainBestChainHeight", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int" + } + ] + }, + { + "name": "getStateForBtcReleaseClient", + "type": "function", + "constant": "true", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getStateForDebugging", + "type": "function", + "constant": "true", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcBlockchainInitialBlockHeight", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int" + } + ] + }, + { + "name": "getBtcBlockchainBlockHashAtDepth", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "depth", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcTxHashProcessedHeight", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "hash", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "int64" + } + ] + }, + { + "name": "isBtcTxHashAlreadyProcessed", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "hash", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "bool" + } + ] + }, + { + "name": "getFederationAddress", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string" + } + ] + }, + { + "name": "registerBtcTransaction", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "tx", + "type": "bytes" + }, + { + "name": "height", + "type": "int256" + }, + { + "name": "pmt", + "type": "bytes" + } + ], + "outputs": [] + }, + { + "name": "addSignature", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "pubkey", + "type": "bytes" + }, + { + "name": "signatures", + "type": "bytes[]" + }, + { + "name": "txhash", + "type": "bytes" + } + ], + "outputs": [] + }, + { + "name": "receiveHeaders", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "blocks", + "type": "bytes[]" + } + ], + "outputs": [] + }, + { + "name": "receiveHeader", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "block", + "type": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFederationThreshold", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getFederatorPublicKeyOfType", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + }, + { + "name": "type", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getFederationCreationTime", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFederationCreationBlockNumber", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getRetiringFederationAddress", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string" + } + ] + }, + { + "name": "getRetiringFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getRetiringFederationThreshold", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getRetiringFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getRetiringFederatorPublicKeyOfType", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + }, + { + "name": "type", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getRetiringFederationCreationTime", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getRetiringFederationCreationBlockNumber", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "createFederation", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addFederatorPublicKey", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "key", + "type": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addFederatorPublicKeyMultikey", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "btcKey", + "type": "bytes" + }, + { + "name": "rskKey", + "type": "bytes" + }, + { + "name": "mstKey", + "type": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "commitFederation", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "hash", + "type": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "rollbackFederation", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getPendingFederationHash", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getPendingFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getPendingFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getPendingFederatorPublicKeyOfType", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + }, + { + "name": "type", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getLockWhitelistSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getLockWhitelistAddress", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "string" + } + ] + }, + { + "name": "getLockWhitelistEntryByAddress", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "address", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "address", + "type": "string" + }, + { + "name": "maxTransferValue", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addOneOffLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "address", + "type": "string" + }, + { + "name": "maxTransferValue", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addUnlimitedLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "address", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "removeLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "address", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "setLockWhitelistDisableBlockDelay", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "disableDelay", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFeePerKb", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "voteFeePerKbChange", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "feePerKb", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "updateCollections", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [] + }, + { + "name": "getMinimumLockTxValue", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getBtcTransactionConfirmations", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "txHash", + "type": "bytes32" + }, + { + "name": "blockHash", + "type": "bytes32" + }, + { + "name": "merkleBranchPath", + "type": "uint256" + }, + { + "name": "merkleBranchHashes", + "type": "bytes32[]" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getLockingCap", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "increaseLockingCap", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "newLockingCap", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool" + } + ] + }, + { + "name": "registerBtcCoinbaseTransaction", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcTxSerialized", + "type": "bytes" + }, + { + "name": "blockHash", + "type": "bytes32" + }, + { + "name": "pmtSerialized", + "type": "bytes" + }, + { + "name": "witnessMerkleRoot", + "type": "bytes32" + }, { + "name": "witnessReservedValue", + "type": "bytes32" + } + ], + "outputs": [] + }, + { + "name": "hasBtcBlockCoinbaseTransactionInformation", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "blockHash", + "type": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool" + } + ] + }, + { + "name": "registerFastBridgeBtcTransaction", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcTxSerialized", + "type": "bytes" + }, + { + "name": "height", + "type": "uint256" + }, + { + "name": "pmtSerialized", + "type": "bytes" + }, + { + "name": "derivationArgumentsHash", + "type": "bytes32" + }, + { + "name": "userRefundBtcAddress", + "type": "bytes" + }, + { + "name": "liquidityBridgeContractAddress", + "type": "address" + }, + { + "name": "liquidityProviderBtcAddress", + "type": "bytes" + }, + { + "name": "shouldTransferToContract", + "type": "bool" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getActiveFederationCreationBlockHeight", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256" + } + ] + }, + { + "name": "getBtcBlockchainBestBlockHeader", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcBlockchainBlockHeaderByHash", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcBlockHash", + "type": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcBlockchainBlockHeaderByHeight", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcBlockHeight", + "type": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcBlockchainParentBlockHeaderByHash", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcBlockHash", + "type": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getEstimatedFeesForNextPegOutEvent", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256" + } + ] + }, + { + "name": "getNextPegoutCreationBlockNumber", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256" + } + ] + }, + { + "name": "getQueuedPegoutsCount", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256" + } + ] + }, + { + "name": "releaseBtc", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [] + }, + { + "name": "getActivePowpegRedeemScript", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "senderBtcAddress", + "type": "string" + }, + { + "indexed": false, + "name": "amount", + "type": "int256" + } + ], + "name": "lock_btc", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "sender", + "type": "address" + } + ], + "name": "update_collections", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "releaseRskTxHash", + "type": "bytes32" + }, + { + "indexed": true, + "name": "federatorRskAddress", + "type": "address" + }, + { + "indexed": false, + "name": "federatorBtcPublicKey", + "type": "bytes" + } + ], + "name": "add_signature", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "releaseRskTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "btcRawTransaction", + "type": "bytes" + } + ], + "name": "release_btc", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "oldFederationBtcPublicKeys", + "type": "bytes" + }, + { + "indexed": false, + "name": "oldFederationBtcAddress", + "type": "string" + }, + { + "indexed": false, + "name": "newFederationBtcPublicKeys", + "type": "bytes" + }, + { + "indexed": false, + "name": "newFederationBtcAddress", + "type": "string" + }, + { + "indexed": false, + "name": "activationHeight", + "type": "int256" + } + ], + "name": "commit_federation", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "rskTxHash", + "type": "bytes32" + }, + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "release_requested", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "receiver", + "type": "address" + }, + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "amount", + "type": "int256" + }, + { + "indexed": false, + "name": "protocolVersion", + "type": "int256" + } + ], + "name": "pegin_btc", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "reason", + "type": "int256" + } + ], + "name": "rejected_pegin", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "reason", + "type": "int256" + } + ], + "name": "unrefundable_pegin", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "name": "btcDestinationAddress", + "type": "string" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "release_request_received", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "reason", + "type": "int256" + } + ], + "name": "release_request_rejected", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "releaseRskTxHashes", + "type": "bytes" + } + ], + "name": "batch_pegout_created", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "pegoutCreationRskBlockNumber", + "type": "uint256" + } + ], + "name": "pegout_confirmed", + "type": "event" + } +] \ No newline at end of file diff --git a/dist/lib/nativeContracts/bridge-hop.json b/dist/lib/nativeContracts/bridge-hop.json new file mode 100644 index 0000000..1549506 --- /dev/null +++ b/dist/lib/nativeContracts/bridge-hop.json @@ -0,0 +1,1229 @@ +[ + { + "name": "getBtcBlockchainBestChainHeight", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int" + } + ] + }, + { + "name": "getStateForBtcReleaseClient", + "type": "function", + "constant": "true", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getStateForDebugging", + "type": "function", + "constant": "true", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcBlockchainInitialBlockHeight", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int" + } + ] + }, + { + "name": "getBtcBlockchainBlockHashAtDepth", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "depth", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcTxHashProcessedHeight", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "hash", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "int64" + } + ] + }, + { + "name": "isBtcTxHashAlreadyProcessed", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "hash", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "bool" + } + ] + }, + { + "name": "getFederationAddress", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string" + } + ] + }, + { + "name": "registerBtcTransaction", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "tx", + "type": "bytes" + }, + { + "name": "height", + "type": "int256" + }, + { + "name": "pmt", + "type": "bytes" + } + ], + "outputs": [] + }, + { + "name": "addSignature", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "pubkey", + "type": "bytes" + }, + { + "name": "signatures", + "type": "bytes[]" + }, + { + "name": "txhash", + "type": "bytes" + } + ], + "outputs": [] + }, + { + "name": "receiveHeaders", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "blocks", + "type": "bytes[]" + } + ], + "outputs": [] + }, + { + "name": "receiveHeader", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "block", + "type": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFederationThreshold", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getFederatorPublicKeyOfType", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + }, + { + "name": "type", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getFederationCreationTime", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFederationCreationBlockNumber", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getRetiringFederationAddress", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string" + } + ] + }, + { + "name": "getRetiringFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getRetiringFederationThreshold", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getRetiringFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getRetiringFederatorPublicKeyOfType", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + }, + { + "name": "type", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getRetiringFederationCreationTime", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getRetiringFederationCreationBlockNumber", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "createFederation", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addFederatorPublicKey", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "key", + "type": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addFederatorPublicKeyMultikey", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "btcKey", + "type": "bytes" + }, + { + "name": "rskKey", + "type": "bytes" + }, + { + "name": "mstKey", + "type": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "commitFederation", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "hash", + "type": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "rollbackFederation", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getPendingFederationHash", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getPendingFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getPendingFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getPendingFederatorPublicKeyOfType", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + }, + { + "name": "type", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getLockWhitelistSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getLockWhitelistAddress", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "string" + } + ] + }, + { + "name": "getLockWhitelistEntryByAddress", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "address", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "address", + "type": "string" + }, + { + "name": "maxTransferValue", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addOneOffLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "address", + "type": "string" + }, + { + "name": "maxTransferValue", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addUnlimitedLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "address", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "removeLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "address", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "setLockWhitelistDisableBlockDelay", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "disableDelay", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFeePerKb", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "voteFeePerKbChange", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "feePerKb", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "updateCollections", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [] + }, + { + "name": "getMinimumLockTxValue", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getBtcTransactionConfirmations", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "txHash", + "type": "bytes32" + }, + { + "name": "blockHash", + "type": "bytes32" + }, + { + "name": "merkleBranchPath", + "type": "uint256" + }, + { + "name": "merkleBranchHashes", + "type": "bytes32[]" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getLockingCap", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "increaseLockingCap", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "newLockingCap", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool" + } + ] + }, + { + "name": "registerBtcCoinbaseTransaction", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcTxSerialized", + "type": "bytes" + }, + { + "name": "blockHash", + "type": "bytes32" + }, + { + "name": "pmtSerialized", + "type": "bytes" + }, + { + "name": "witnessMerkleRoot", + "type": "bytes32" + }, { + "name": "witnessReservedValue", + "type": "bytes32" + } + ], + "outputs": [] + }, + { + "name": "hasBtcBlockCoinbaseTransactionInformation", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "blockHash", + "type": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool" + } + ] + }, + { + "name": "registerFastBridgeBtcTransaction", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcTxSerialized", + "type": "bytes" + }, + { + "name": "height", + "type": "uint256" + }, + { + "name": "pmtSerialized", + "type": "bytes" + }, + { + "name": "derivationArgumentsHash", + "type": "bytes32" + }, + { + "name": "userRefundBtcAddress", + "type": "bytes" + }, + { + "name": "liquidityBridgeContractAddress", + "type": "address" + }, + { + "name": "liquidityProviderBtcAddress", + "type": "bytes" + }, + { + "name": "shouldTransferToContract", + "type": "bool" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getActiveFederationCreationBlockHeight", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256" + } + ] + }, + { + "name": "getBtcBlockchainBestBlockHeader", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcBlockchainBlockHeaderByHash", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcBlockHash", + "type": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcBlockchainBlockHeaderByHeight", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcBlockHeight", + "type": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcBlockchainParentBlockHeaderByHash", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcBlockHash", + "type": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getEstimatedFeesForNextPegOutEvent", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256" + } + ] + }, + { + "name": "getNextPegoutCreationBlockNumber", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256" + } + ] + }, + { + "name": "getQueuedPegoutsCount", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256" + } + ] + }, + { + "name": "releaseBtc", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [] + }, + { + "name": "getActivePowpegRedeemScript", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "senderBtcAddress", + "type": "string" + }, + { + "indexed": false, + "name": "amount", + "type": "int256" + } + ], + "name": "lock_btc", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "sender", + "type": "address" + } + ], + "name": "update_collections", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "releaseRskTxHash", + "type": "bytes32" + }, + { + "indexed": true, + "name": "federatorRskAddress", + "type": "address" + }, + { + "indexed": false, + "name": "federatorBtcPublicKey", + "type": "bytes" + } + ], + "name": "add_signature", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "releaseRskTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "btcRawTransaction", + "type": "bytes" + } + ], + "name": "release_btc", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "oldFederationBtcPublicKeys", + "type": "bytes" + }, + { + "indexed": false, + "name": "oldFederationBtcAddress", + "type": "string" + }, + { + "indexed": false, + "name": "newFederationBtcPublicKeys", + "type": "bytes" + }, + { + "indexed": false, + "name": "newFederationBtcAddress", + "type": "string" + }, + { + "indexed": false, + "name": "activationHeight", + "type": "int256" + } + ], + "name": "commit_federation", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "rskTxHash", + "type": "bytes32" + }, + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "release_requested", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "receiver", + "type": "address" + }, + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "amount", + "type": "int256" + }, + { + "indexed": false, + "name": "protocolVersion", + "type": "int256" + } + ], + "name": "pegin_btc", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "reason", + "type": "int256" + } + ], + "name": "rejected_pegin", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "reason", + "type": "int256" + } + ], + "name": "unrefundable_pegin", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "name": "btcDestinationAddress", + "type": "bytes" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "release_request_received", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "reason", + "type": "int256" + } + ], + "name": "release_request_rejected", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "releaseRskTxHashes", + "type": "bytes" + } + ], + "name": "batch_pegout_created", + "type": "event" + } +] \ No newline at end of file diff --git a/dist/lib/nativeContracts/bridge-iris.json b/dist/lib/nativeContracts/bridge-iris.json new file mode 100644 index 0000000..1fbd3dc --- /dev/null +++ b/dist/lib/nativeContracts/bridge-iris.json @@ -0,0 +1,1157 @@ +[ + { + "name": "getBtcBlockchainBestChainHeight", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int" + } + ] + }, + { + "name": "getStateForBtcReleaseClient", + "type": "function", + "constant": "true", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getStateForDebugging", + "type": "function", + "constant": "true", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcBlockchainInitialBlockHeight", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int" + } + ] + }, + { + "name": "getBtcBlockchainBlockHashAtDepth", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "depth", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcTxHashProcessedHeight", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "hash", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "int64" + } + ] + }, + { + "name": "isBtcTxHashAlreadyProcessed", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "hash", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "bool" + } + ] + }, + { + "name": "getFederationAddress", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string" + } + ] + }, + { + "name": "registerBtcTransaction", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "tx", + "type": "bytes" + }, + { + "name": "height", + "type": "int256" + }, + { + "name": "pmt", + "type": "bytes" + } + ], + "outputs": [] + }, + { + "name": "addSignature", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "pubkey", + "type": "bytes" + }, + { + "name": "signatures", + "type": "bytes[]" + }, + { + "name": "txhash", + "type": "bytes" + } + ], + "outputs": [] + }, + { + "name": "receiveHeaders", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "blocks", + "type": "bytes[]" + } + ], + "outputs": [] + }, + { + "name": "receiveHeader", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "block", + "type": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFederationThreshold", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getFederatorPublicKeyOfType", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + }, + { + "name": "type", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getFederationCreationTime", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFederationCreationBlockNumber", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getRetiringFederationAddress", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string" + } + ] + }, + { + "name": "getRetiringFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getRetiringFederationThreshold", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getRetiringFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getRetiringFederatorPublicKeyOfType", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + }, + { + "name": "type", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getRetiringFederationCreationTime", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getRetiringFederationCreationBlockNumber", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "createFederation", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addFederatorPublicKey", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "key", + "type": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addFederatorPublicKeyMultikey", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "btcKey", + "type": "bytes" + }, + { + "name": "rskKey", + "type": "bytes" + }, + { + "name": "mstKey", + "type": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "commitFederation", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "hash", + "type": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "rollbackFederation", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getPendingFederationHash", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getPendingFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getPendingFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getPendingFederatorPublicKeyOfType", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + }, + { + "name": "type", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getLockWhitelistSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getLockWhitelistAddress", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "string" + } + ] + }, + { + "name": "getLockWhitelistEntryByAddress", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "address", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "address", + "type": "string" + }, + { + "name": "maxTransferValue", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addOneOffLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "address", + "type": "string" + }, + { + "name": "maxTransferValue", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addUnlimitedLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "address", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "removeLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "address", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "setLockWhitelistDisableBlockDelay", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "disableDelay", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFeePerKb", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "voteFeePerKbChange", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "feePerKb", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "updateCollections", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [] + }, + { + "name": "getMinimumLockTxValue", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getBtcTransactionConfirmations", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "txHash", + "type": "bytes32" + }, + { + "name": "blockHash", + "type": "bytes32" + }, + { + "name": "merkleBranchPath", + "type": "uint256" + }, + { + "name": "merkleBranchHashes", + "type": "bytes32[]" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getLockingCap", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "increaseLockingCap", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "newLockingCap", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool" + } + ] + }, + { + "name": "registerBtcCoinbaseTransaction", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcTxSerialized", + "type": "bytes" + }, + { + "name": "blockHash", + "type": "bytes32" + }, + { + "name": "pmtSerialized", + "type": "bytes" + }, + { + "name": "witnessMerkleRoot", + "type": "bytes32" + }, { + "name": "witnessReservedValue", + "type": "bytes32" + } + ], + "outputs": [] + }, + { + "name": "hasBtcBlockCoinbaseTransactionInformation", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "blockHash", + "type": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool" + } + ] + }, + { + "name": "registerFastBridgeBtcTransaction", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcTxSerialized", + "type": "bytes" + }, + { + "name": "height", + "type": "uint256" + }, + { + "name": "pmtSerialized", + "type": "bytes" + }, + { + "name": "derivationArgumentsHash", + "type": "bytes32" + }, + { + "name": "userRefundBtcAddress", + "type": "bytes" + }, + { + "name": "liquidityBridgeContractAddress", + "type": "address" + }, + { + "name": "liquidityProviderBtcAddress", + "type": "bytes" + }, + { + "name": "shouldTransferToContract", + "type": "bool" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getActiveFederationCreationBlockHeight", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256" + } + ] + }, + { + "name": "getBtcBlockchainBestBlockHeader", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcBlockchainBlockHeaderByHash", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcBlockHash", + "type": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcBlockchainBlockHeaderByHeight", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcBlockHeight", + "type": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcBlockchainParentBlockHeaderByHash", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcBlockHash", + "type": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "senderBtcAddress", + "type": "string" + }, + { + "indexed": false, + "name": "amount", + "type": "int256" + } + ], + "name": "lock_btc", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "sender", + "type": "address" + } + ], + "name": "update_collections", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "releaseRskTxHash", + "type": "bytes32" + }, + { + "indexed": true, + "name": "federatorRskAddress", + "type": "address" + }, + { + "indexed": false, + "name": "federatorBtcPublicKey", + "type": "bytes" + } + ], + "name": "add_signature", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "releaseRskTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "btcRawTransaction", + "type": "bytes" + } + ], + "name": "release_btc", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "oldFederationBtcPublicKeys", + "type": "bytes" + }, + { + "indexed": false, + "name": "oldFederationBtcAddress", + "type": "string" + }, + { + "indexed": false, + "name": "newFederationBtcPublicKeys", + "type": "bytes" + }, + { + "indexed": false, + "name": "newFederationBtcAddress", + "type": "string" + }, + { + "indexed": false, + "name": "activationHeight", + "type": "int256" + } + ], + "name": "commit_federation", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "rskTxHash", + "type": "bytes32" + }, + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "release_requested", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "receiver", + "type": "address" + }, + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "amount", + "type": "int256" + }, + { + "indexed": false, + "name": "protocolVersion", + "type": "int256" + } + ], + "name": "pegin_btc", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "reason", + "type": "int256" + } + ], + "name": "rejected_pegin", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "reason", + "type": "int256" + } + ], + "name": "unrefundable_pegin", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "name": "btcDestinationAddress", + "type": "bytes" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "release_request_received", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "reason", + "type": "int256" + } + ], + "name": "release_request_rejected", + "type": "event" + } +] \ No newline at end of file diff --git a/dist/lib/nativeContracts/bridge-orchid.json b/dist/lib/nativeContracts/bridge-orchid.json new file mode 100644 index 0000000..5b5a145 --- /dev/null +++ b/dist/lib/nativeContracts/bridge-orchid.json @@ -0,0 +1,409 @@ +[{ + "name": "getBtcBlockchainBestChainHeight", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int" + }] +}, { + "name": "getStateForDebugging", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getBtcBlockchainInitialBlockHeight", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int" + }] +}, { + "name": "getBtcBlockchainBlockHashAtDepth", + "type": "function", + "constant": true, + "inputs": [{ + "name": "depth", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getBtcTxHashProcessedHeight", + "type": "function", + "constant": true, + "inputs": [{ + "name": "hash", + "type": "string" + }], + "outputs": [{ + "name": "", + "type": "int64" + }] +}, { + "name": "isBtcTxHashAlreadyProcessed", + "type": "function", + "constant": true, + "inputs": [{ + "name": "hash", + "type": "string" + }], + "outputs": [{ + "name": "", + "type": "bool" + }] +}, { + "name": "getFederationAddress", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "string" + }] +}, { + "name": "registerBtcTransaction", + "type": "function", + "constant": true, + "inputs": [{ + "name": "tx", + "type": "bytes" + }, { + "name": "height", + "type": "int256" + }, { + "name": "pmt", + "type": "bytes" + }], + "outputs": [] +}, { + "name": "addSignature", + "type": "function", + "constant": true, + "inputs": [{ + "name": "pubkey", + "type": "bytes" + }, { + "name": "signatures", + "type": "bytes[]" + }, { + "name": "txhash", + "type": "bytes" + }], + "outputs": [] +}, { + "name": "receiveHeaders", + "type": "function", + "constant": true, + "inputs": [{ + "name": "blocks", + "type": "bytes[]" + }], + "outputs": [] +}, { + "name": "getFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getFederationThreshold", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [{ + "name": "index", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getFederationCreationTime", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getFederationCreationBlockNumber", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getRetiringFederationAddress", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "string" + }] +}, { + "name": "getRetiringFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getRetiringFederationThreshold", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getRetiringFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [{ + "name": "index", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getRetiringFederationCreationTime", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getRetiringFederationCreationBlockNumber", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "createFederation", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "addFederatorPublicKey", + "type": "function", + "constant": false, + "inputs": [{ + "name": "key", + "type": "bytes" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "commitFederation", + "type": "function", + "constant": false, + "inputs": [{ + "name": "hash", + "type": "bytes" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "rollbackFederation", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getPendingFederationHash", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getPendingFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getPendingFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [{ + "name": "index", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getLockWhitelistSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getLockWhitelistAddress", + "type": "function", + "constant": true, + "inputs": [{ + "name": "index", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "string" + }] +}, { + "name": "getLockWhitelistEntryByAddress", + "type": "function", + "constant": true, + "inputs": [{ + "name": "address", + "type": "string" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "addOneOffLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [{ + "name": "address", + "type": "string" + },{ + "name": "maxTransferValue", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "addUnlimitedLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [{ + "name": "address", + "type": "string" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "removeLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [{ + "name": "address", + "type": "string" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "setLockWhitelistDisableBlockDelay", + "type": "function", + "constant": false, + "inputs": [{ + "name": "disableDelay", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getFeePerKb", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "voteFeePerKbChange", + "type": "function", + "constant": false, + "inputs": [{ + "name": "feePerKb", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "updateCollections", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [] +}, { + "name": "getMinimumLockTxValue", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}] \ No newline at end of file diff --git a/dist/lib/nativeContracts/bridge.json b/dist/lib/nativeContracts/bridge-papyrus.json similarity index 99% rename from dist/lib/nativeContracts/bridge.json rename to dist/lib/nativeContracts/bridge-papyrus.json index 0caab55..95f2f97 100644 --- a/dist/lib/nativeContracts/bridge.json +++ b/dist/lib/nativeContracts/bridge-papyrus.json @@ -912,4 +912,4 @@ "name": "release_requested", "type": "event" } -] +] \ No newline at end of file diff --git a/dist/lib/nativeContracts/bridge-wasabi.json b/dist/lib/nativeContracts/bridge-wasabi.json new file mode 100644 index 0000000..5fbbea9 --- /dev/null +++ b/dist/lib/nativeContracts/bridge-wasabi.json @@ -0,0 +1,508 @@ +[{ + "name": "getBtcBlockchainBestChainHeight", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int" + }] +}, { + "name": "getStateForDebugging", + "type": "function", + "constant": "true", + "inputs": [], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getBtcBlockchainInitialBlockHeight", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int" + }] +}, { + "name": "getBtcBlockchainBlockHashAtDepth", + "type": "function", + "constant": true, + "inputs": [{ + "name": "depth", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getBtcTxHashProcessedHeight", + "type": "function", + "constant": true, + "inputs": [{ + "name": "hash", + "type": "string" + }], + "outputs": [{ + "name": "", + "type": "int64" + }] +}, { + "name": "isBtcTxHashAlreadyProcessed", + "type": "function", + "constant": true, + "inputs": [{ + "name": "hash", + "type": "string" + }], + "outputs": [{ + "name": "", + "type": "bool" + }] +}, { + "name": "getFederationAddress", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "string" + }] +}, { + "name": "registerBtcTransaction", + "type": "function", + "constant": true, + "inputs": [{ + "name": "tx", + "type": "bytes" + }, { + "name": "height", + "type": "int256" + }, { + "name": "pmt", + "type": "bytes" + }], + "outputs": [] +}, { + "name": "addSignature", + "type": "function", + "constant": true, + "inputs": [{ + "name": "pubkey", + "type": "bytes" + }, { + "name": "signatures", + "type": "bytes[]" + }, { + "name": "txhash", + "type": "bytes" + }], + "outputs": [] +}, { + "name": "receiveHeaders", + "type": "function", + "constant": true, + "inputs": [{ + "name": "blocks", + "type": "bytes[]" + }], + "outputs": [] +}, { + "name": "getFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getFederationThreshold", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [{ + "name": "index", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getFederatorPublicKeyOfType", + "type": "function", + "constant": true, + "inputs": [{ + "name": "index", + "type": "int256" + }, { + "name": "type", + "type": "string" + }], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getFederationCreationTime", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getFederationCreationBlockNumber", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getRetiringFederationAddress", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "string" + }] +}, { + "name": "getRetiringFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getRetiringFederationThreshold", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getRetiringFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [{ + "name": "index", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getRetiringFederatorPublicKeyOfType", + "type": "function", + "constant": true, + "inputs": [{ + "name": "index", + "type": "int256" + }, { + "name": "type", + "type": "string" + }], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getRetiringFederationCreationTime", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getRetiringFederationCreationBlockNumber", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "createFederation", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "addFederatorPublicKey", + "type": "function", + "constant": false, + "inputs": [{ + "name": "key", + "type": "bytes" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "addFederatorPublicKeyMultikey", + "type": "function", + "constant": false, + "inputs": [{ + "name": "btcKey", + "type": "bytes" + }, { + "name": "rskKey", + "type": "bytes" + }, { + "name": "mstKey", + "type": "bytes" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "commitFederation", + "type": "function", + "constant": false, + "inputs": [{ + "name": "hash", + "type": "bytes" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "rollbackFederation", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getPendingFederationHash", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getPendingFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getPendingFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [{ + "name": "index", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getPendingFederatorPublicKeyOfType", + "type": "function", + "constant": true, + "inputs": [{ + "name": "index", + "type": "int256" + }, { + "name": "type", + "type": "string" + }], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getLockWhitelistSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getLockWhitelistAddress", + "type": "function", + "constant": true, + "inputs": [{ + "name": "index", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "string" + }] +}, { + "name": "getLockWhitelistEntryByAddress", + "type": "function", + "constant": true, + "inputs": [{ + "name": "address", + "type": "string" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "addLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [{ + "name": "address", + "type": "string" + },{ + "name": "maxTransferValue", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "addOneOffLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [{ + "name": "address", + "type": "string" + },{ + "name": "maxTransferValue", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "addUnlimitedLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [{ + "name": "address", + "type": "string" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "removeLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [{ + "name": "address", + "type": "string" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "setLockWhitelistDisableBlockDelay", + "type": "function", + "constant": false, + "inputs": [{ + "name": "disableDelay", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getFeePerKb", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "voteFeePerKbChange", + "type": "function", + "constant": false, + "inputs": [{ + "name": "feePerKb", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "updateCollections", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [] +}, { + "name": "getMinimumLockTxValue", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getBtcTransactionConfirmations", + "type": "function", + "constant": true, + "inputs": [{ + "name": "txHash", + "type": "bytes32" + }, { + "name": "blockHash", + "type": "bytes32" + }, { + "name": "merkleBranchPath", + "type": "uint256" + }, { + "name": "merkleBranchHashes", + "type": "bytes32[]" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}] \ No newline at end of file diff --git a/dist/lib/nativeContracts/bridgeAbi.js b/dist/lib/nativeContracts/bridgeAbi.js index 6f3558f..382ccec 100644 --- a/dist/lib/nativeContracts/bridgeAbi.js +++ b/dist/lib/nativeContracts/bridgeAbi.js @@ -1,2 +1,53 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _bridge = _interopRequireDefault(require("./bridge.json"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}var _default = -_bridge.default;exports.default = _default; \ No newline at end of file +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.getBridgeAbi = getBridgeAbi;var _bridgeOrchid = _interopRequireDefault(require("./bridge-orchid.json")); +var _bridgeWasabi = _interopRequireDefault(require("./bridge-wasabi.json")); +var _bridgePapyrus = _interopRequireDefault(require("./bridge-papyrus.json")); +var _bridgeIris = _interopRequireDefault(require("./bridge-iris.json")); +var _bridgeFingerroot = _interopRequireDefault(require("./bridge-fingerroot.json")); +var _bridgeHop = _interopRequireDefault(require("./bridge-hop.json"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} + +const RELEASES = { + mainnet: { + 0: _bridgeOrchid.default, + 1591000: _bridgeWasabi.default, + 2392700: _bridgePapyrus.default, + 3614800: _bridgeIris.default, + 4598500: _bridgeHop.default, + 5468000: _bridgeFingerroot.default }, + + testnet: { + 0: _bridgeWasabi.default, + 863000: _bridgePapyrus.default, + 2060500: _bridgeIris.default, + 3103000: _bridgeHop.default, + 4015800: _bridgeFingerroot.default } }; + + + +function getBridgeAbi({ txBlockNumber, bitcoinNetwork }) { + function findMatchingActivationHeight(txHeight, heights) { + // Finds the highest release activation height that is lower than/equal to the tx's block number, in + // order to find the ABI that corresponds to the bridge version used at the moment of the transaction. + + let matchingActivationHeight = -1; + for (let i = 0; i < heights.length; i++) { + const currentHeight = heights[i]; + + if (txHeight >= currentHeight && matchingActivationHeight < currentHeight) { + matchingActivationHeight = currentHeight; + } + } + + return matchingActivationHeight; + } + if (isNaN(txBlockNumber) || txBlockNumber < 0) { + throw new Error('Invalid tx block number'); + } else if (!['testnet', 'mainnet'].includes(bitcoinNetwork)) { + throw new Error('Invalid bitcoin network'); + } + + const activationHeights = Object.keys(RELEASES[bitcoinNetwork]); + + const matchingActivationHeight = findMatchingActivationHeight(txBlockNumber, activationHeights); + + return RELEASES[bitcoinNetwork][matchingActivationHeight]; +} \ No newline at end of file diff --git a/src/lib/ContractParser.js b/src/lib/ContractParser.js index 57777b6..fce9ab5 100755 --- a/src/lib/ContractParser.js +++ b/src/lib/ContractParser.js @@ -25,7 +25,7 @@ function hasMethodSelector (txInputData, selector) { } export class ContractParser { - constructor ({ abi, log, initConfig, nod3 } = {}) { + constructor ({ abi, log, initConfig, nod3, txBlockNumber } = {}) { initConfig = initConfig || {} const { net } = initConfig this.netId = (net) ? net.id : undefined @@ -35,7 +35,7 @@ export class ContractParser { this.nativeContracts = NativeContracts(initConfig) if (this.netId) { let bitcoinNetwork = bitcoinRskNetWorks[this.netId] - this.nativeContractsEvents = NativeContractsDecoder({ bitcoinNetwork }) + this.nativeContractsEvents = NativeContractsDecoder({ bitcoinNetwork, txBlockNumber }) } } @@ -157,8 +157,6 @@ export class ContractParser { }, {}) } - - getMethodsBySelectors (txInputData) { let methods = this.getMethodsSelectors() return Object.keys(methods) @@ -213,7 +211,7 @@ export class ContractParser { const impContractAddress = `0x${storedValue.slice(-40)}` // extract contract address return { isUpgradeable, impContractAddress } } else { - return { isUpgradeable, impContractAddress: storedValue} + return { isUpgradeable, impContractAddress: storedValue } } } diff --git a/src/lib/nativeContracts/NativeContractsDecoder.js b/src/lib/nativeContracts/NativeContractsDecoder.js index 99b414c..70ce5a4 100644 --- a/src/lib/nativeContracts/NativeContractsDecoder.js +++ b/src/lib/nativeContracts/NativeContractsDecoder.js @@ -1,12 +1,11 @@ import NativeContractsEvents from './NativeContractsEvents' import EventDecoder from '../EventDecoder' -import bridgeAbi from './bridgeAbi' +import { getBridgeAbi } from './bridgeAbi' import { addSignatureDataToAbi } from '../utils' -export const ABI = addSignatureDataToAbi(bridgeAbi) - -export default function NativeContractsEventDecoder ({ bitcoinNetwork }) { +export default function NativeContractsEventDecoder ({ bitcoinNetwork, txBlockNumber }) { const nativeDecoder = NativeContractsEvents({ bitcoinNetwork }) + const ABI = addSignatureDataToAbi(getBridgeAbi({ txBlockNumber, bitcoinNetwork })) const solidityDecoder = EventDecoder(ABI) const getEventDecoder = log => { diff --git a/src/lib/nativeContracts/bridge-fingerroot.json b/src/lib/nativeContracts/bridge-fingerroot.json new file mode 100644 index 0000000..82bc596 --- /dev/null +++ b/src/lib/nativeContracts/bridge-fingerroot.json @@ -0,0 +1,1246 @@ +[ + { + "name": "getBtcBlockchainBestChainHeight", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int" + } + ] + }, + { + "name": "getStateForBtcReleaseClient", + "type": "function", + "constant": "true", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getStateForDebugging", + "type": "function", + "constant": "true", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcBlockchainInitialBlockHeight", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int" + } + ] + }, + { + "name": "getBtcBlockchainBlockHashAtDepth", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "depth", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcTxHashProcessedHeight", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "hash", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "int64" + } + ] + }, + { + "name": "isBtcTxHashAlreadyProcessed", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "hash", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "bool" + } + ] + }, + { + "name": "getFederationAddress", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string" + } + ] + }, + { + "name": "registerBtcTransaction", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "tx", + "type": "bytes" + }, + { + "name": "height", + "type": "int256" + }, + { + "name": "pmt", + "type": "bytes" + } + ], + "outputs": [] + }, + { + "name": "addSignature", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "pubkey", + "type": "bytes" + }, + { + "name": "signatures", + "type": "bytes[]" + }, + { + "name": "txhash", + "type": "bytes" + } + ], + "outputs": [] + }, + { + "name": "receiveHeaders", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "blocks", + "type": "bytes[]" + } + ], + "outputs": [] + }, + { + "name": "receiveHeader", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "block", + "type": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFederationThreshold", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getFederatorPublicKeyOfType", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + }, + { + "name": "type", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getFederationCreationTime", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFederationCreationBlockNumber", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getRetiringFederationAddress", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string" + } + ] + }, + { + "name": "getRetiringFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getRetiringFederationThreshold", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getRetiringFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getRetiringFederatorPublicKeyOfType", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + }, + { + "name": "type", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getRetiringFederationCreationTime", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getRetiringFederationCreationBlockNumber", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "createFederation", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addFederatorPublicKey", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "key", + "type": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addFederatorPublicKeyMultikey", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "btcKey", + "type": "bytes" + }, + { + "name": "rskKey", + "type": "bytes" + }, + { + "name": "mstKey", + "type": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "commitFederation", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "hash", + "type": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "rollbackFederation", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getPendingFederationHash", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getPendingFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getPendingFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getPendingFederatorPublicKeyOfType", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + }, + { + "name": "type", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getLockWhitelistSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getLockWhitelistAddress", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "string" + } + ] + }, + { + "name": "getLockWhitelistEntryByAddress", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "address", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "address", + "type": "string" + }, + { + "name": "maxTransferValue", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addOneOffLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "address", + "type": "string" + }, + { + "name": "maxTransferValue", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addUnlimitedLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "address", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "removeLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "address", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "setLockWhitelistDisableBlockDelay", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "disableDelay", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFeePerKb", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "voteFeePerKbChange", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "feePerKb", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "updateCollections", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [] + }, + { + "name": "getMinimumLockTxValue", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getBtcTransactionConfirmations", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "txHash", + "type": "bytes32" + }, + { + "name": "blockHash", + "type": "bytes32" + }, + { + "name": "merkleBranchPath", + "type": "uint256" + }, + { + "name": "merkleBranchHashes", + "type": "bytes32[]" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getLockingCap", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "increaseLockingCap", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "newLockingCap", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool" + } + ] + }, + { + "name": "registerBtcCoinbaseTransaction", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcTxSerialized", + "type": "bytes" + }, + { + "name": "blockHash", + "type": "bytes32" + }, + { + "name": "pmtSerialized", + "type": "bytes" + }, + { + "name": "witnessMerkleRoot", + "type": "bytes32" + }, { + "name": "witnessReservedValue", + "type": "bytes32" + } + ], + "outputs": [] + }, + { + "name": "hasBtcBlockCoinbaseTransactionInformation", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "blockHash", + "type": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool" + } + ] + }, + { + "name": "registerFastBridgeBtcTransaction", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcTxSerialized", + "type": "bytes" + }, + { + "name": "height", + "type": "uint256" + }, + { + "name": "pmtSerialized", + "type": "bytes" + }, + { + "name": "derivationArgumentsHash", + "type": "bytes32" + }, + { + "name": "userRefundBtcAddress", + "type": "bytes" + }, + { + "name": "liquidityBridgeContractAddress", + "type": "address" + }, + { + "name": "liquidityProviderBtcAddress", + "type": "bytes" + }, + { + "name": "shouldTransferToContract", + "type": "bool" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getActiveFederationCreationBlockHeight", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256" + } + ] + }, + { + "name": "getBtcBlockchainBestBlockHeader", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcBlockchainBlockHeaderByHash", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcBlockHash", + "type": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcBlockchainBlockHeaderByHeight", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcBlockHeight", + "type": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcBlockchainParentBlockHeaderByHash", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcBlockHash", + "type": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getEstimatedFeesForNextPegOutEvent", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256" + } + ] + }, + { + "name": "getNextPegoutCreationBlockNumber", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256" + } + ] + }, + { + "name": "getQueuedPegoutsCount", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256" + } + ] + }, + { + "name": "releaseBtc", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [] + }, + { + "name": "getActivePowpegRedeemScript", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "senderBtcAddress", + "type": "string" + }, + { + "indexed": false, + "name": "amount", + "type": "int256" + } + ], + "name": "lock_btc", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "sender", + "type": "address" + } + ], + "name": "update_collections", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "releaseRskTxHash", + "type": "bytes32" + }, + { + "indexed": true, + "name": "federatorRskAddress", + "type": "address" + }, + { + "indexed": false, + "name": "federatorBtcPublicKey", + "type": "bytes" + } + ], + "name": "add_signature", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "releaseRskTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "btcRawTransaction", + "type": "bytes" + } + ], + "name": "release_btc", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "oldFederationBtcPublicKeys", + "type": "bytes" + }, + { + "indexed": false, + "name": "oldFederationBtcAddress", + "type": "string" + }, + { + "indexed": false, + "name": "newFederationBtcPublicKeys", + "type": "bytes" + }, + { + "indexed": false, + "name": "newFederationBtcAddress", + "type": "string" + }, + { + "indexed": false, + "name": "activationHeight", + "type": "int256" + } + ], + "name": "commit_federation", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "rskTxHash", + "type": "bytes32" + }, + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "release_requested", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "receiver", + "type": "address" + }, + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "amount", + "type": "int256" + }, + { + "indexed": false, + "name": "protocolVersion", + "type": "int256" + } + ], + "name": "pegin_btc", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "reason", + "type": "int256" + } + ], + "name": "rejected_pegin", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "reason", + "type": "int256" + } + ], + "name": "unrefundable_pegin", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "name": "btcDestinationAddress", + "type": "string" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "release_request_received", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "reason", + "type": "int256" + } + ], + "name": "release_request_rejected", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "releaseRskTxHashes", + "type": "bytes" + } + ], + "name": "batch_pegout_created", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "pegoutCreationRskBlockNumber", + "type": "uint256" + } + ], + "name": "pegout_confirmed", + "type": "event" + } +] \ No newline at end of file diff --git a/src/lib/nativeContracts/bridge-hop.json b/src/lib/nativeContracts/bridge-hop.json new file mode 100644 index 0000000..1549506 --- /dev/null +++ b/src/lib/nativeContracts/bridge-hop.json @@ -0,0 +1,1229 @@ +[ + { + "name": "getBtcBlockchainBestChainHeight", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int" + } + ] + }, + { + "name": "getStateForBtcReleaseClient", + "type": "function", + "constant": "true", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getStateForDebugging", + "type": "function", + "constant": "true", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcBlockchainInitialBlockHeight", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int" + } + ] + }, + { + "name": "getBtcBlockchainBlockHashAtDepth", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "depth", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcTxHashProcessedHeight", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "hash", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "int64" + } + ] + }, + { + "name": "isBtcTxHashAlreadyProcessed", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "hash", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "bool" + } + ] + }, + { + "name": "getFederationAddress", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string" + } + ] + }, + { + "name": "registerBtcTransaction", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "tx", + "type": "bytes" + }, + { + "name": "height", + "type": "int256" + }, + { + "name": "pmt", + "type": "bytes" + } + ], + "outputs": [] + }, + { + "name": "addSignature", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "pubkey", + "type": "bytes" + }, + { + "name": "signatures", + "type": "bytes[]" + }, + { + "name": "txhash", + "type": "bytes" + } + ], + "outputs": [] + }, + { + "name": "receiveHeaders", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "blocks", + "type": "bytes[]" + } + ], + "outputs": [] + }, + { + "name": "receiveHeader", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "block", + "type": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFederationThreshold", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getFederatorPublicKeyOfType", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + }, + { + "name": "type", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getFederationCreationTime", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFederationCreationBlockNumber", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getRetiringFederationAddress", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string" + } + ] + }, + { + "name": "getRetiringFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getRetiringFederationThreshold", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getRetiringFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getRetiringFederatorPublicKeyOfType", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + }, + { + "name": "type", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getRetiringFederationCreationTime", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getRetiringFederationCreationBlockNumber", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "createFederation", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addFederatorPublicKey", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "key", + "type": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addFederatorPublicKeyMultikey", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "btcKey", + "type": "bytes" + }, + { + "name": "rskKey", + "type": "bytes" + }, + { + "name": "mstKey", + "type": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "commitFederation", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "hash", + "type": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "rollbackFederation", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getPendingFederationHash", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getPendingFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getPendingFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getPendingFederatorPublicKeyOfType", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + }, + { + "name": "type", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getLockWhitelistSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getLockWhitelistAddress", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "string" + } + ] + }, + { + "name": "getLockWhitelistEntryByAddress", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "address", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "address", + "type": "string" + }, + { + "name": "maxTransferValue", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addOneOffLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "address", + "type": "string" + }, + { + "name": "maxTransferValue", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addUnlimitedLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "address", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "removeLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "address", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "setLockWhitelistDisableBlockDelay", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "disableDelay", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFeePerKb", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "voteFeePerKbChange", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "feePerKb", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "updateCollections", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [] + }, + { + "name": "getMinimumLockTxValue", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getBtcTransactionConfirmations", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "txHash", + "type": "bytes32" + }, + { + "name": "blockHash", + "type": "bytes32" + }, + { + "name": "merkleBranchPath", + "type": "uint256" + }, + { + "name": "merkleBranchHashes", + "type": "bytes32[]" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getLockingCap", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "increaseLockingCap", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "newLockingCap", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool" + } + ] + }, + { + "name": "registerBtcCoinbaseTransaction", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcTxSerialized", + "type": "bytes" + }, + { + "name": "blockHash", + "type": "bytes32" + }, + { + "name": "pmtSerialized", + "type": "bytes" + }, + { + "name": "witnessMerkleRoot", + "type": "bytes32" + }, { + "name": "witnessReservedValue", + "type": "bytes32" + } + ], + "outputs": [] + }, + { + "name": "hasBtcBlockCoinbaseTransactionInformation", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "blockHash", + "type": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool" + } + ] + }, + { + "name": "registerFastBridgeBtcTransaction", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcTxSerialized", + "type": "bytes" + }, + { + "name": "height", + "type": "uint256" + }, + { + "name": "pmtSerialized", + "type": "bytes" + }, + { + "name": "derivationArgumentsHash", + "type": "bytes32" + }, + { + "name": "userRefundBtcAddress", + "type": "bytes" + }, + { + "name": "liquidityBridgeContractAddress", + "type": "address" + }, + { + "name": "liquidityProviderBtcAddress", + "type": "bytes" + }, + { + "name": "shouldTransferToContract", + "type": "bool" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getActiveFederationCreationBlockHeight", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256" + } + ] + }, + { + "name": "getBtcBlockchainBestBlockHeader", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcBlockchainBlockHeaderByHash", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcBlockHash", + "type": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcBlockchainBlockHeaderByHeight", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcBlockHeight", + "type": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcBlockchainParentBlockHeaderByHash", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcBlockHash", + "type": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getEstimatedFeesForNextPegOutEvent", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256" + } + ] + }, + { + "name": "getNextPegoutCreationBlockNumber", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256" + } + ] + }, + { + "name": "getQueuedPegoutsCount", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256" + } + ] + }, + { + "name": "releaseBtc", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [] + }, + { + "name": "getActivePowpegRedeemScript", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "senderBtcAddress", + "type": "string" + }, + { + "indexed": false, + "name": "amount", + "type": "int256" + } + ], + "name": "lock_btc", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "sender", + "type": "address" + } + ], + "name": "update_collections", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "releaseRskTxHash", + "type": "bytes32" + }, + { + "indexed": true, + "name": "federatorRskAddress", + "type": "address" + }, + { + "indexed": false, + "name": "federatorBtcPublicKey", + "type": "bytes" + } + ], + "name": "add_signature", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "releaseRskTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "btcRawTransaction", + "type": "bytes" + } + ], + "name": "release_btc", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "oldFederationBtcPublicKeys", + "type": "bytes" + }, + { + "indexed": false, + "name": "oldFederationBtcAddress", + "type": "string" + }, + { + "indexed": false, + "name": "newFederationBtcPublicKeys", + "type": "bytes" + }, + { + "indexed": false, + "name": "newFederationBtcAddress", + "type": "string" + }, + { + "indexed": false, + "name": "activationHeight", + "type": "int256" + } + ], + "name": "commit_federation", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "rskTxHash", + "type": "bytes32" + }, + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "release_requested", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "receiver", + "type": "address" + }, + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "amount", + "type": "int256" + }, + { + "indexed": false, + "name": "protocolVersion", + "type": "int256" + } + ], + "name": "pegin_btc", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "reason", + "type": "int256" + } + ], + "name": "rejected_pegin", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "reason", + "type": "int256" + } + ], + "name": "unrefundable_pegin", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "name": "btcDestinationAddress", + "type": "bytes" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "release_request_received", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "reason", + "type": "int256" + } + ], + "name": "release_request_rejected", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "releaseRskTxHashes", + "type": "bytes" + } + ], + "name": "batch_pegout_created", + "type": "event" + } +] \ No newline at end of file diff --git a/src/lib/nativeContracts/bridge-iris.json b/src/lib/nativeContracts/bridge-iris.json new file mode 100644 index 0000000..1fbd3dc --- /dev/null +++ b/src/lib/nativeContracts/bridge-iris.json @@ -0,0 +1,1157 @@ +[ + { + "name": "getBtcBlockchainBestChainHeight", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int" + } + ] + }, + { + "name": "getStateForBtcReleaseClient", + "type": "function", + "constant": "true", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getStateForDebugging", + "type": "function", + "constant": "true", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcBlockchainInitialBlockHeight", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int" + } + ] + }, + { + "name": "getBtcBlockchainBlockHashAtDepth", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "depth", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcTxHashProcessedHeight", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "hash", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "int64" + } + ] + }, + { + "name": "isBtcTxHashAlreadyProcessed", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "hash", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "bool" + } + ] + }, + { + "name": "getFederationAddress", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string" + } + ] + }, + { + "name": "registerBtcTransaction", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "tx", + "type": "bytes" + }, + { + "name": "height", + "type": "int256" + }, + { + "name": "pmt", + "type": "bytes" + } + ], + "outputs": [] + }, + { + "name": "addSignature", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "pubkey", + "type": "bytes" + }, + { + "name": "signatures", + "type": "bytes[]" + }, + { + "name": "txhash", + "type": "bytes" + } + ], + "outputs": [] + }, + { + "name": "receiveHeaders", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "blocks", + "type": "bytes[]" + } + ], + "outputs": [] + }, + { + "name": "receiveHeader", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "block", + "type": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFederationThreshold", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getFederatorPublicKeyOfType", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + }, + { + "name": "type", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getFederationCreationTime", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFederationCreationBlockNumber", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getRetiringFederationAddress", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string" + } + ] + }, + { + "name": "getRetiringFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getRetiringFederationThreshold", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getRetiringFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getRetiringFederatorPublicKeyOfType", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + }, + { + "name": "type", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getRetiringFederationCreationTime", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getRetiringFederationCreationBlockNumber", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "createFederation", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addFederatorPublicKey", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "key", + "type": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addFederatorPublicKeyMultikey", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "btcKey", + "type": "bytes" + }, + { + "name": "rskKey", + "type": "bytes" + }, + { + "name": "mstKey", + "type": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "commitFederation", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "hash", + "type": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "rollbackFederation", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getPendingFederationHash", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getPendingFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getPendingFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getPendingFederatorPublicKeyOfType", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + }, + { + "name": "type", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getLockWhitelistSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getLockWhitelistAddress", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "index", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "string" + } + ] + }, + { + "name": "getLockWhitelistEntryByAddress", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "address", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "address", + "type": "string" + }, + { + "name": "maxTransferValue", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addOneOffLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "address", + "type": "string" + }, + { + "name": "maxTransferValue", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "addUnlimitedLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "address", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "removeLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "address", + "type": "string" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "setLockWhitelistDisableBlockDelay", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "disableDelay", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getFeePerKb", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "voteFeePerKbChange", + "type": "function", + "constant": false, + "inputs": [ + { + "name": "feePerKb", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "updateCollections", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [] + }, + { + "name": "getMinimumLockTxValue", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getBtcTransactionConfirmations", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "txHash", + "type": "bytes32" + }, + { + "name": "blockHash", + "type": "bytes32" + }, + { + "name": "merkleBranchPath", + "type": "uint256" + }, + { + "name": "merkleBranchHashes", + "type": "bytes32[]" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getLockingCap", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "increaseLockingCap", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "newLockingCap", + "type": "int256" + } + ], + "outputs": [ + { + "name": "", + "type": "bool" + } + ] + }, + { + "name": "registerBtcCoinbaseTransaction", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcTxSerialized", + "type": "bytes" + }, + { + "name": "blockHash", + "type": "bytes32" + }, + { + "name": "pmtSerialized", + "type": "bytes" + }, + { + "name": "witnessMerkleRoot", + "type": "bytes32" + }, { + "name": "witnessReservedValue", + "type": "bytes32" + } + ], + "outputs": [] + }, + { + "name": "hasBtcBlockCoinbaseTransactionInformation", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "blockHash", + "type": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool" + } + ] + }, + { + "name": "registerFastBridgeBtcTransaction", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcTxSerialized", + "type": "bytes" + }, + { + "name": "height", + "type": "uint256" + }, + { + "name": "pmtSerialized", + "type": "bytes" + }, + { + "name": "derivationArgumentsHash", + "type": "bytes32" + }, + { + "name": "userRefundBtcAddress", + "type": "bytes" + }, + { + "name": "liquidityBridgeContractAddress", + "type": "address" + }, + { + "name": "liquidityProviderBtcAddress", + "type": "bytes" + }, + { + "name": "shouldTransferToContract", + "type": "bool" + } + ], + "outputs": [ + { + "name": "", + "type": "int256" + } + ] + }, + { + "name": "getActiveFederationCreationBlockHeight", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256" + } + ] + }, + { + "name": "getBtcBlockchainBestBlockHeader", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcBlockchainBlockHeaderByHash", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcBlockHash", + "type": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcBlockchainBlockHeaderByHeight", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcBlockHeight", + "type": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "name": "getBtcBlockchainParentBlockHeaderByHash", + "type": "function", + "constant": true, + "inputs": [ + { + "name": "btcBlockHash", + "type": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes" + } + ] + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "senderBtcAddress", + "type": "string" + }, + { + "indexed": false, + "name": "amount", + "type": "int256" + } + ], + "name": "lock_btc", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "sender", + "type": "address" + } + ], + "name": "update_collections", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "releaseRskTxHash", + "type": "bytes32" + }, + { + "indexed": true, + "name": "federatorRskAddress", + "type": "address" + }, + { + "indexed": false, + "name": "federatorBtcPublicKey", + "type": "bytes" + } + ], + "name": "add_signature", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "releaseRskTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "btcRawTransaction", + "type": "bytes" + } + ], + "name": "release_btc", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "oldFederationBtcPublicKeys", + "type": "bytes" + }, + { + "indexed": false, + "name": "oldFederationBtcAddress", + "type": "string" + }, + { + "indexed": false, + "name": "newFederationBtcPublicKeys", + "type": "bytes" + }, + { + "indexed": false, + "name": "newFederationBtcAddress", + "type": "string" + }, + { + "indexed": false, + "name": "activationHeight", + "type": "int256" + } + ], + "name": "commit_federation", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "rskTxHash", + "type": "bytes32" + }, + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "release_requested", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "receiver", + "type": "address" + }, + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "amount", + "type": "int256" + }, + { + "indexed": false, + "name": "protocolVersion", + "type": "int256" + } + ], + "name": "pegin_btc", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "reason", + "type": "int256" + } + ], + "name": "rejected_pegin", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "btcTxHash", + "type": "bytes32" + }, + { + "indexed": false, + "name": "reason", + "type": "int256" + } + ], + "name": "unrefundable_pegin", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "name": "btcDestinationAddress", + "type": "bytes" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "release_request_received", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "reason", + "type": "int256" + } + ], + "name": "release_request_rejected", + "type": "event" + } +] \ No newline at end of file diff --git a/src/lib/nativeContracts/bridge-orchid.json b/src/lib/nativeContracts/bridge-orchid.json new file mode 100644 index 0000000..5b5a145 --- /dev/null +++ b/src/lib/nativeContracts/bridge-orchid.json @@ -0,0 +1,409 @@ +[{ + "name": "getBtcBlockchainBestChainHeight", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int" + }] +}, { + "name": "getStateForDebugging", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getBtcBlockchainInitialBlockHeight", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int" + }] +}, { + "name": "getBtcBlockchainBlockHashAtDepth", + "type": "function", + "constant": true, + "inputs": [{ + "name": "depth", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getBtcTxHashProcessedHeight", + "type": "function", + "constant": true, + "inputs": [{ + "name": "hash", + "type": "string" + }], + "outputs": [{ + "name": "", + "type": "int64" + }] +}, { + "name": "isBtcTxHashAlreadyProcessed", + "type": "function", + "constant": true, + "inputs": [{ + "name": "hash", + "type": "string" + }], + "outputs": [{ + "name": "", + "type": "bool" + }] +}, { + "name": "getFederationAddress", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "string" + }] +}, { + "name": "registerBtcTransaction", + "type": "function", + "constant": true, + "inputs": [{ + "name": "tx", + "type": "bytes" + }, { + "name": "height", + "type": "int256" + }, { + "name": "pmt", + "type": "bytes" + }], + "outputs": [] +}, { + "name": "addSignature", + "type": "function", + "constant": true, + "inputs": [{ + "name": "pubkey", + "type": "bytes" + }, { + "name": "signatures", + "type": "bytes[]" + }, { + "name": "txhash", + "type": "bytes" + }], + "outputs": [] +}, { + "name": "receiveHeaders", + "type": "function", + "constant": true, + "inputs": [{ + "name": "blocks", + "type": "bytes[]" + }], + "outputs": [] +}, { + "name": "getFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getFederationThreshold", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [{ + "name": "index", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getFederationCreationTime", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getFederationCreationBlockNumber", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getRetiringFederationAddress", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "string" + }] +}, { + "name": "getRetiringFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getRetiringFederationThreshold", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getRetiringFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [{ + "name": "index", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getRetiringFederationCreationTime", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getRetiringFederationCreationBlockNumber", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "createFederation", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "addFederatorPublicKey", + "type": "function", + "constant": false, + "inputs": [{ + "name": "key", + "type": "bytes" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "commitFederation", + "type": "function", + "constant": false, + "inputs": [{ + "name": "hash", + "type": "bytes" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "rollbackFederation", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getPendingFederationHash", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getPendingFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getPendingFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [{ + "name": "index", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getLockWhitelistSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getLockWhitelistAddress", + "type": "function", + "constant": true, + "inputs": [{ + "name": "index", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "string" + }] +}, { + "name": "getLockWhitelistEntryByAddress", + "type": "function", + "constant": true, + "inputs": [{ + "name": "address", + "type": "string" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "addOneOffLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [{ + "name": "address", + "type": "string" + },{ + "name": "maxTransferValue", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "addUnlimitedLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [{ + "name": "address", + "type": "string" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "removeLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [{ + "name": "address", + "type": "string" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "setLockWhitelistDisableBlockDelay", + "type": "function", + "constant": false, + "inputs": [{ + "name": "disableDelay", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getFeePerKb", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "voteFeePerKbChange", + "type": "function", + "constant": false, + "inputs": [{ + "name": "feePerKb", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "updateCollections", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [] +}, { + "name": "getMinimumLockTxValue", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}] \ No newline at end of file diff --git a/src/lib/nativeContracts/bridge.json b/src/lib/nativeContracts/bridge-papyrus.json similarity index 99% rename from src/lib/nativeContracts/bridge.json rename to src/lib/nativeContracts/bridge-papyrus.json index 0caab55..95f2f97 100644 --- a/src/lib/nativeContracts/bridge.json +++ b/src/lib/nativeContracts/bridge-papyrus.json @@ -912,4 +912,4 @@ "name": "release_requested", "type": "event" } -] +] \ No newline at end of file diff --git a/src/lib/nativeContracts/bridge-wasabi.json b/src/lib/nativeContracts/bridge-wasabi.json new file mode 100644 index 0000000..5fbbea9 --- /dev/null +++ b/src/lib/nativeContracts/bridge-wasabi.json @@ -0,0 +1,508 @@ +[{ + "name": "getBtcBlockchainBestChainHeight", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int" + }] +}, { + "name": "getStateForDebugging", + "type": "function", + "constant": "true", + "inputs": [], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getBtcBlockchainInitialBlockHeight", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int" + }] +}, { + "name": "getBtcBlockchainBlockHashAtDepth", + "type": "function", + "constant": true, + "inputs": [{ + "name": "depth", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getBtcTxHashProcessedHeight", + "type": "function", + "constant": true, + "inputs": [{ + "name": "hash", + "type": "string" + }], + "outputs": [{ + "name": "", + "type": "int64" + }] +}, { + "name": "isBtcTxHashAlreadyProcessed", + "type": "function", + "constant": true, + "inputs": [{ + "name": "hash", + "type": "string" + }], + "outputs": [{ + "name": "", + "type": "bool" + }] +}, { + "name": "getFederationAddress", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "string" + }] +}, { + "name": "registerBtcTransaction", + "type": "function", + "constant": true, + "inputs": [{ + "name": "tx", + "type": "bytes" + }, { + "name": "height", + "type": "int256" + }, { + "name": "pmt", + "type": "bytes" + }], + "outputs": [] +}, { + "name": "addSignature", + "type": "function", + "constant": true, + "inputs": [{ + "name": "pubkey", + "type": "bytes" + }, { + "name": "signatures", + "type": "bytes[]" + }, { + "name": "txhash", + "type": "bytes" + }], + "outputs": [] +}, { + "name": "receiveHeaders", + "type": "function", + "constant": true, + "inputs": [{ + "name": "blocks", + "type": "bytes[]" + }], + "outputs": [] +}, { + "name": "getFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getFederationThreshold", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [{ + "name": "index", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getFederatorPublicKeyOfType", + "type": "function", + "constant": true, + "inputs": [{ + "name": "index", + "type": "int256" + }, { + "name": "type", + "type": "string" + }], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getFederationCreationTime", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getFederationCreationBlockNumber", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getRetiringFederationAddress", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "string" + }] +}, { + "name": "getRetiringFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getRetiringFederationThreshold", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getRetiringFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [{ + "name": "index", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getRetiringFederatorPublicKeyOfType", + "type": "function", + "constant": true, + "inputs": [{ + "name": "index", + "type": "int256" + }, { + "name": "type", + "type": "string" + }], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getRetiringFederationCreationTime", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getRetiringFederationCreationBlockNumber", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "createFederation", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "addFederatorPublicKey", + "type": "function", + "constant": false, + "inputs": [{ + "name": "key", + "type": "bytes" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "addFederatorPublicKeyMultikey", + "type": "function", + "constant": false, + "inputs": [{ + "name": "btcKey", + "type": "bytes" + }, { + "name": "rskKey", + "type": "bytes" + }, { + "name": "mstKey", + "type": "bytes" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "commitFederation", + "type": "function", + "constant": false, + "inputs": [{ + "name": "hash", + "type": "bytes" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "rollbackFederation", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getPendingFederationHash", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getPendingFederationSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getPendingFederatorPublicKey", + "type": "function", + "constant": true, + "inputs": [{ + "name": "index", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getPendingFederatorPublicKeyOfType", + "type": "function", + "constant": true, + "inputs": [{ + "name": "index", + "type": "int256" + }, { + "name": "type", + "type": "string" + }], + "outputs": [{ + "name": "", + "type": "bytes" + }] +}, { + "name": "getLockWhitelistSize", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getLockWhitelistAddress", + "type": "function", + "constant": true, + "inputs": [{ + "name": "index", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "string" + }] +}, { + "name": "getLockWhitelistEntryByAddress", + "type": "function", + "constant": true, + "inputs": [{ + "name": "address", + "type": "string" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "addLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [{ + "name": "address", + "type": "string" + },{ + "name": "maxTransferValue", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "addOneOffLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [{ + "name": "address", + "type": "string" + },{ + "name": "maxTransferValue", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "addUnlimitedLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [{ + "name": "address", + "type": "string" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "removeLockWhitelistAddress", + "type": "function", + "constant": false, + "inputs": [{ + "name": "address", + "type": "string" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "setLockWhitelistDisableBlockDelay", + "type": "function", + "constant": false, + "inputs": [{ + "name": "disableDelay", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getFeePerKb", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "voteFeePerKbChange", + "type": "function", + "constant": false, + "inputs": [{ + "name": "feePerKb", + "type": "int256" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "updateCollections", + "type": "function", + "constant": false, + "inputs": [], + "outputs": [] +}, { + "name": "getMinimumLockTxValue", + "type": "function", + "constant": true, + "inputs": [], + "outputs": [{ + "name": "", + "type": "int256" + }] +}, { + "name": "getBtcTransactionConfirmations", + "type": "function", + "constant": true, + "inputs": [{ + "name": "txHash", + "type": "bytes32" + }, { + "name": "blockHash", + "type": "bytes32" + }, { + "name": "merkleBranchPath", + "type": "uint256" + }, { + "name": "merkleBranchHashes", + "type": "bytes32[]" + }], + "outputs": [{ + "name": "", + "type": "int256" + }] +}] \ No newline at end of file diff --git a/src/lib/nativeContracts/bridgeAbi.js b/src/lib/nativeContracts/bridgeAbi.js index f79f69f..762b236 100644 --- a/src/lib/nativeContracts/bridgeAbi.js +++ b/src/lib/nativeContracts/bridgeAbi.js @@ -1,2 +1,53 @@ -import bridgeAbi from './bridge.json' -export default bridgeAbi +import orchid from './bridge-orchid.json' +import wasabi from './bridge-wasabi.json' +import papyrus from './bridge-papyrus.json' +import iris from './bridge-iris.json' +import fingerroot from './bridge-fingerroot.json' +import hop from './bridge-hop.json' + +const RELEASES = { + mainnet: { + 0: orchid, + 1591000: wasabi, + 2392700: papyrus, + 3614800: iris, + 4598500: hop, + 5468000: fingerroot + }, + testnet: { + 0: wasabi, + 863000: papyrus, + 2060500: iris, + 3103000: hop, + 4015800: fingerroot + } +} + +export function getBridgeAbi ({ txBlockNumber, bitcoinNetwork }) { + function findMatchingActivationHeight (txHeight, heights) { + // Finds the highest release activation height that is lower than/equal to the tx's block number, in + // order to find the ABI that corresponds to the bridge version used at the moment of the transaction. + + let matchingActivationHeight = -1 + for (let i = 0; i < heights.length; i++) { + const currentHeight = heights[i] + + if (txHeight >= currentHeight && matchingActivationHeight < currentHeight) { + matchingActivationHeight = currentHeight + } + } + + return matchingActivationHeight + } + if (isNaN(txBlockNumber) || txBlockNumber < 0) { + throw new Error('Invalid tx block number') + } else if (!['testnet', 'mainnet'].includes(bitcoinNetwork)) { + throw new Error('Invalid bitcoin network') + } + + const activationHeights = Object.keys(RELEASES[bitcoinNetwork]) + + const matchingActivationHeight = findMatchingActivationHeight(txBlockNumber, activationHeights) + + return RELEASES[bitcoinNetwork][matchingActivationHeight] +} From 029a89387b338e56f67bfbb6114c5c804e53a289 Mon Sep 17 00:00:00 2001 From: Dario Date: Fri, 28 Jul 2023 17:36:18 -0300 Subject: [PATCH 16/33] fix: update test to match new bridgeAbi implementation --- test/events.spec.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/events.spec.js b/test/events.spec.js index 9ff0ceb..dffa1cb 100755 --- a/test/events.spec.js +++ b/test/events.spec.js @@ -16,7 +16,8 @@ describe('# decode events', function () { let id = t.netId || 31 initConfig.net = { id } let { abi, tx } = t - let parser = new ContractParser({ initConfig, abi }) + + let parser = new ContractParser({ initConfig, abi, txBlockNumber: (parseInt(tx.blockNumber)) }) let e = t.expect describe(`TX: ${tx.transactionHash}`, function () { let decodedLogs = parser.parseTxLogs(tx.logs) From 4532fe371d7cb848cd33434aeabc5c60c87dd9d2 Mon Sep 17 00:00:00 2001 From: Dario Date: Fri, 28 Jul 2023 17:36:53 -0300 Subject: [PATCH 17/33] fix: update contract standard abis --- dist/lib/compiled_abi.json | 7467 ++++++++++++++++++++++++------------ src/lib/compiled_abi.json | 7467 ++++++++++++++++++++++++------------ 2 files changed, 10144 insertions(+), 4790 deletions(-) diff --git a/dist/lib/compiled_abi.json b/dist/lib/compiled_abi.json index 7c05686..5313c4e 100755 --- a/dist/lib/compiled_abi.json +++ b/dist/lib/compiled_abi.json @@ -1,31 +1,11 @@ [ - { - "constant": false, - "inputs": [ - { - "name": "recipient", - "type": "address" - } - ], - "name": "transferPrimary", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "__signatureData": { - "method": "transferPrimary(address)", - "signature": "2348238cf135e5fa7570fa30dc67d8f7f40e6d9ebd999f20eb992f9685ee8bed", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, { "constant": true, "inputs": [], "name": "primary", "outputs": [ { + "internalType": "address", "name": "", "type": "address" } @@ -45,14 +25,17 @@ "constant": false, "inputs": [ { + "internalType": "contract IERC20", "name": "token", "type": "address" }, { + "internalType": "address", "name": "to", "type": "address" }, { + "internalType": "uint256", "name": "amount", "type": "uint256" } @@ -71,51 +54,51 @@ } }, { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ + "constant": false, + "inputs": [ { - "name": "", - "type": "string" + "internalType": "address", + "name": "recipient", + "type": "address" } ], + "name": "transferPrimary", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "name()", - "signature": "06fdde0383f15d582d1a74511486c9ddf862a882fb7904b3d9fe9b8b8e58a796", + "method": "transferPrimary(address)", + "signature": "2348238cf135e5fa7570fa30dc67d8f7f40e6d9ebd999f20eb992f9685ee8bed", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, "inputs": [ { - "name": "spender", - "type": "address" + "internalType": "string", + "name": "name", + "type": "string" }, { - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ + "internalType": "string", + "name": "symbol", + "type": "string" + }, { - "name": "", - "type": "bool" + "internalType": "uint8", + "name": "decimals", + "type": "uint8" } ], "payable": false, "stateMutability": "nonpayable", - "type": "function", + "type": "constructor", "__signatureData": { - "method": "approve(address,uint256)", - "signature": "095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", + "method": null, + "signature": null, "index": [], "indexed": 0, "eventSignature": null @@ -123,41 +106,32 @@ }, { "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ + "inputs": [ { - "name": "", - "type": "uint256" + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" } ], - "payable": false, - "stateMutability": "view", - "type": "function", - "__signatureData": { - "method": "totalSupply()", - "signature": "18160ddd7f15c72528c2f94fd8dfe3c8d5aa26e2c50c7d81f4bc7bee8d4b7932", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": true, - "inputs": [], - "name": "decimals", + "name": "allowance", "outputs": [ { + "internalType": "uint256", "name": "", - "type": "uint8" + "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "decimals()", - "signature": "313ce567add4d438edf58b94ff345d7d38c45b17dfc0f947988d7819dca364f9", + "method": "allowance(address,address)", + "signature": "dd62ed3e90e97b3d417db9c0c7522647811bafca5afc6694f143588d255fdfb4", "index": [], "indexed": 0, "eventSignature": null @@ -167,17 +141,20 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "spender", "type": "address" }, { - "name": "addedValue", + "internalType": "uint256", + "name": "amount", "type": "uint256" } ], - "name": "increaseAllowance", + "name": "approve", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -186,8 +163,8 @@ "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "increaseAllowance(address,uint256)", - "signature": "39509351d3325647dde3fdd3c8b249adfe89ef4f16d76d83768e6df7a5cd81d6", + "method": "approve(address,uint256)", + "signature": "095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", "index": [], "indexed": 0, "eventSignature": null @@ -197,6 +174,7 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } @@ -204,6 +182,7 @@ "name": "balanceOf", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -222,19 +201,20 @@ { "constant": true, "inputs": [], - "name": "symbol", + "name": "decimals", "outputs": [ { + "internalType": "uint8", "name": "", - "type": "string" + "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "symbol()", - "signature": "95d89b41e2f5f391a79ec54e9d87c79d6e777c63e32c28da95b4e9e4a79250ec", + "method": "decimals()", + "signature": "313ce567add4d438edf58b94ff345d7d38c45b17dfc0f947988d7819dca364f9", "index": [], "indexed": 0, "eventSignature": null @@ -244,10 +224,12 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "spender", "type": "address" }, { + "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } @@ -255,6 +237,7 @@ "name": "decreaseAllowance", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -274,17 +257,20 @@ "constant": false, "inputs": [ { - "name": "recipient", + "internalType": "address", + "name": "spender", "type": "address" }, { - "name": "amount", + "internalType": "uint256", + "name": "addedValue", "type": "uint256" } ], - "name": "transfer", + "name": "increaseAllowance", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -293,59 +279,79 @@ "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "transfer(address,uint256)", - "signature": "a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "method": "increaseAllowance(address,uint256)", + "signature": "39509351d3325647dde3fdd3c8b249adfe89ef4f16d76d83768e6df7a5cd81d6", "index": [], "indexed": 0, "eventSignature": null } }, { + "constant": false, "inputs": [ { - "name": "name", - "type": "string" - }, - { - "name": "symbol", - "type": "string" + "internalType": "address", + "name": "account", + "type": "address" }, { - "name": "decimals", - "type": "uint8" + "internalType": "uint256", + "name": "amount", + "type": "uint256" } ], + "name": "mint", + "outputs": [], "payable": false, "stateMutability": "nonpayable", - "type": "constructor", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "mint(address,uint256)", + "signature": "40c10f19c047ae7dfa66d6312b683d2ea3dfbcb4159e96b967c5f4b0a86f2842", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, - "inputs": [ + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ { - "name": "account", - "type": "address" - }, + "internalType": "string", + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "name()", + "signature": "06fdde0383f15d582d1a74511486c9ddf862a882fb7904b3d9fe9b8b8e58a796", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ { - "name": "amount", - "type": "uint256" + "internalType": "string", + "name": "", + "type": "string" } ], - "name": "mint", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "mint(address,uint256)", - "signature": "40c10f19c047ae7dfa66d6312b683d2ea3dfbcb4159e96b967c5f4b0a86f2842", + "method": "symbol()", + "signature": "95d89b41e2f5f391a79ec54e9d87c79d6e777c63e32c28da95b4e9e4a79250ec", "index": [], "indexed": 0, "eventSignature": null @@ -353,29 +359,54 @@ }, { "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "totalSupply()", + "signature": "18160ddd7f15c72528c2f94fd8dfe3c8d5aa26e2c50c7d81f4bc7bee8d4b7932", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, "inputs": [ { - "name": "owner", + "internalType": "address", + "name": "recipient", "type": "address" }, { - "name": "spender", - "type": "address" + "internalType": "uint256", + "name": "amount", + "type": "uint256" } ], - "name": "allowance", + "name": "transfer", "outputs": [ { + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "allowance(address,address)", - "signature": "dd62ed3e90e97b3d417db9c0c7522647811bafca5afc6694f143588d255fdfb4", + "method": "transfer(address,uint256)", + "signature": "a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", "index": [], "indexed": 0, "eventSignature": null @@ -385,14 +416,17 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "sender", "type": "address" }, { + "internalType": "address", "name": "recipient", "type": "address" }, { + "internalType": "uint256", "name": "amount", "type": "uint256" } @@ -400,6 +434,7 @@ "name": "transferFrom", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -419,18 +454,19 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } ], - "name": "addWhitelisted", + "name": "addWhitelistAdmin", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "addWhitelisted(address)", - "signature": "10154bad5f8b58b5821c989aa3a19216f4f0f6a424c9d495316ed99eabc9d113", + "method": "addWhitelistAdmin(address)", + "signature": "7362d9c8efb3b4fda01af82f687b8894972c34de57e88a1ad22687e2bf5986ba", "index": [], "indexed": 0, "eventSignature": null @@ -440,18 +476,19 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } ], - "name": "removeWhitelisted", + "name": "addWhitelisted", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "removeWhitelisted(address)", - "signature": "291d954951cd7ba0ec12a5dcf299b5a560d33289ca3ac9705bd27b3d3dd58cc5", + "method": "addWhitelisted(address)", + "signature": "10154bad5f8b58b5821c989aa3a19216f4f0f6a424c9d495316ed99eabc9d113", "index": [], "indexed": 0, "eventSignature": null @@ -461,13 +498,15 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } ], - "name": "isWhitelisted", + "name": "isWhitelistAdmin", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -476,45 +515,8 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "isWhitelisted(address)", - "signature": "3af32abf6dd58f324dd88f0cedc69529dd503406094dc24662635caa70d9a021", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": false, - "inputs": [], - "name": "renounceWhitelistAdmin", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "__signatureData": { - "method": "renounceWhitelistAdmin()", - "signature": "4c5a628c0a9c4a8806d71b7d5e87a7de26f71c356aff7925d80a15cbe14f0cbb", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": false, - "inputs": [ - { - "name": "account", - "type": "address" - } - ], - "name": "addWhitelistAdmin", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "__signatureData": { - "method": "addWhitelistAdmin(address)", - "signature": "7362d9c8efb3b4fda01af82f687b8894972c34de57e88a1ad22687e2bf5986ba", + "method": "isWhitelistAdmin(address)", + "signature": "bb5f747b7234573d42296873730b7cd00c26493ecd02a4763c67c0c7a025f6a1", "index": [], "indexed": 0, "eventSignature": null @@ -524,13 +526,15 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } ], - "name": "isWhitelistAdmin", + "name": "isWhitelisted", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -539,24 +543,8 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "isWhitelistAdmin(address)", - "signature": "bb5f747b7234573d42296873730b7cd00c26493ecd02a4763c67c0c7a025f6a1", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": false, - "inputs": [], - "name": "renounceWhitelisted", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "__signatureData": { - "method": "renounceWhitelisted()", - "signature": "d6cd9473b95d75ff40cd7a5b8c3bc34d17cdc7c75b5a9c2c4c6744beff129e46", + "method": "isWhitelisted(address)", + "signature": "3af32abf6dd58f324dd88f0cedc69529dd503406094dc24662635caa70d9a021", "index": [], "indexed": 0, "eventSignature": null @@ -579,63 +567,22 @@ } }, { - "constant": true, - "inputs": [], - "name": "rate", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "__signatureData": { - "method": "rate()", - "signature": "2c4e722ec6511e89f25f244e462d7b9552e4a1e9b6043fd124a874a67f5c804f", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": true, - "inputs": [], - "name": "weiRaised", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "__signatureData": { - "method": "weiRaised()", - "signature": "4042b66fe5f2644ad71dd4e339299721a4fb92741a7427e3a9e94931da295cca", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": true, - "inputs": [], - "name": "wallet", - "outputs": [ + "constant": false, + "inputs": [ { - "name": "", + "internalType": "address", + "name": "account", "type": "address" } ], + "name": "removeWhitelisted", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "wallet()", - "signature": "521eb2736f64b43875f0b44fdc29304541dcc3cd844822ef0697470d90c3e124", + "method": "removeWhitelisted(address)", + "signature": "291d954951cd7ba0ec12a5dcf299b5a560d33289ca3ac9705bd27b3d3dd58cc5", "index": [], "indexed": 0, "eventSignature": null @@ -643,41 +590,31 @@ }, { "constant": false, - "inputs": [ - { - "name": "beneficiary", - "type": "address" - } - ], - "name": "buyTokens", + "inputs": [], + "name": "renounceWhitelistAdmin", "outputs": [], - "payable": true, - "stateMutability": "payable", + "payable": false, + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "buyTokens(address)", - "signature": "ec8ac4d8ebf67e3f8d982a81442192b39118de75f74dd3987cc13070ca1c53e0", + "method": "renounceWhitelistAdmin()", + "signature": "4c5a628c0a9c4a8806d71b7d5e87a7de26f71c356aff7925d80a15cbe14f0cbb", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [], - "name": "token", - "outputs": [ - { - "name": "", - "type": "address" - } - ], + "name": "renounceWhitelisted", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "token()", - "signature": "fc0c546a8dce9d6e9b97c086302918c9106d97a17809f6bcacfe02124763cb39", + "method": "renounceWhitelisted()", + "signature": "d6cd9473b95d75ff40cd7a5b8c3bc34d17cdc7c75b5a9c2c4c6744beff129e46", "index": [], "indexed": 0, "eventSignature": null @@ -686,14 +623,17 @@ { "inputs": [ { + "internalType": "uint256", "name": "_rate", "type": "uint256" }, { + "internalType": "address payable", "name": "_wallet", "type": "address" }, { + "internalType": "contract IERC20", "name": "_token", "type": "address" } @@ -713,18 +653,19 @@ "constant": false, "inputs": [ { - "name": "account", + "internalType": "address", + "name": "beneficiary", "type": "address" } ], - "name": "removeWhitelistAdmin", + "name": "buyTokens", "outputs": [], - "payable": false, - "stateMutability": "nonpayable", + "payable": true, + "stateMutability": "payable", "type": "function", "__signatureData": { - "method": "removeWhitelistAdmin(address)", - "signature": "6897e9747da0ffb9f264b876f5c2b2227ac56f9fdaa6c5d73f8a8ad061690be5", + "method": "buyTokens(address)", + "signature": "ec8ac4d8ebf67e3f8d982a81442192b39118de75f74dd3987cc13070ca1c53e0", "index": [], "indexed": 0, "eventSignature": null @@ -733,43 +674,64 @@ { "constant": true, "inputs": [], - "name": "onlyWhitelistAdminMock", - "outputs": [], + "name": "rate", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "onlyWhitelistAdminMock()", - "signature": "564c74a37341f8fc0183d333b61f1340909400bf0ae5f30577d4b88b3da10175", + "method": "rate()", + "signature": "2c4e722ec6511e89f25f244e462d7b9552e4a1e9b6043fd124a874a67f5c804f", "index": [], "indexed": 0, "eventSignature": null } }, { + "constant": true, "inputs": [], + "name": "token", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], "payable": false, - "stateMutability": "nonpayable", - "type": "constructor", + "stateMutability": "view", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "token()", + "signature": "fc0c546a8dce9d6e9b97c086302918c9106d97a17809f6bcacfe02124763cb39", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [], - "name": "renounceOwnership", - "outputs": [], + "name": "wallet", + "outputs": [ + { + "internalType": "address payable", + "name": "", + "type": "address" + } + ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "renounceOwnership()", - "signature": "715018a616b5f2044428f6fadb7deef4ce9ca76ef60ea57978964ad137bbe7ae", + "method": "wallet()", + "signature": "521eb2736f64b43875f0b44fdc29304541dcc3cd844822ef0697470d90c3e124", "index": [], "indexed": 0, "eventSignature": null @@ -778,19 +740,20 @@ { "constant": true, "inputs": [], - "name": "owner", + "name": "weiRaised", "outputs": [ { + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "owner()", - "signature": "8da5cb5b36e7f68c1d2e56001220cdbdd3ba2616072f718acfda4a06441a807d", + "method": "weiRaised()", + "signature": "4042b66fe5f2644ad71dd4e339299721a4fb92741a7427e3a9e94931da295cca", "index": [], "indexed": 0, "eventSignature": null @@ -799,19 +762,14 @@ { "constant": true, "inputs": [], - "name": "isOwner", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], + "name": "onlyWhitelistAdminMock", + "outputs": [], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "isOwner()", - "signature": "8f32d59b339b0965093e9a53b00f4400c41d72f026df85c0beaa1d49d97802ef", + "method": "onlyWhitelistAdminMock()", + "signature": "564c74a37341f8fc0183d333b61f1340909400bf0ae5f30577d4b88b3da10175", "index": [], "indexed": 0, "eventSignature": null @@ -821,18 +779,32 @@ "constant": false, "inputs": [ { - "name": "newOwner", + "internalType": "address", + "name": "account", "type": "address" } ], - "name": "transferOwnership", + "name": "removeWhitelistAdmin", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "transferOwnership(address)", - "signature": "f2fde38b092330466c661fc723d5289b90272a3e580e3187d1d7ef788506c557", + "method": "removeWhitelistAdmin(address)", + "signature": "6897e9747da0ffb9f264b876f5c2b2227ac56f9fdaa6c5d73f8a8ad061690be5", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor", + "__signatureData": { + "method": null, + "signature": null, "index": [], "indexed": 0, "eventSignature": null @@ -841,22 +813,27 @@ { "inputs": [ { + "internalType": "address", "name": "beneficiary", "type": "address" }, { + "internalType": "uint256", "name": "start", "type": "uint256" }, { + "internalType": "uint256", "name": "cliffDuration", "type": "uint256" }, { + "internalType": "uint256", "name": "duration", "type": "uint256" }, { + "internalType": "bool", "name": "revocable", "type": "bool" } @@ -878,6 +855,7 @@ "name": "beneficiary", "outputs": [ { + "internalType": "address", "name": "", "type": "address" } @@ -899,6 +877,7 @@ "name": "cliff", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -917,9 +896,10 @@ { "constant": true, "inputs": [], - "name": "start", + "name": "duration", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -928,8 +908,8 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "start()", - "signature": "be9a655586dceb82dfa0af992b5d8ae7fa45053cb7fd6f141f541da7572978c7", + "method": "duration()", + "signature": "0fb5a6b40d15bfee72e58fd4a3fbc0824854616197205c3f48946b53286fd328", "index": [], "indexed": 0, "eventSignature": null @@ -938,19 +918,20 @@ { "constant": true, "inputs": [], - "name": "duration", + "name": "isOwner", "outputs": [ { + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "duration()", - "signature": "0fb5a6b40d15bfee72e58fd4a3fbc0824854616197205c3f48946b53286fd328", + "method": "isOwner()", + "signature": "8f32d59b339b0965093e9a53b00f4400c41d72f026df85c0beaa1d49d97802ef", "index": [], "indexed": 0, "eventSignature": null @@ -959,20 +940,43 @@ { "constant": true, "inputs": [], - "name": "revocable", + "name": "owner", "outputs": [ { + "internalType": "address", "name": "", - "type": "bool" + "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "revocable()", - "signature": "872a78104060b2611ad651114462af633b90f4846ddf96ef452cc3abaadbef00", - "index": [], + "method": "owner()", + "signature": "8da5cb5b36e7f68c1d2e56001220cdbdd3ba2616072f718acfda4a06441a807d", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + } + ], + "name": "release", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "release(address)", + "signature": "19165587d81f9d3d0d57225d38f5bb5163beb87e4b5fafa3a2f80c53398d9874", + "index": [], "indexed": 0, "eventSignature": null } @@ -981,6 +985,7 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "token", "type": "address" } @@ -988,6 +993,7 @@ "name": "released", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -1003,10 +1009,71 @@ "eventSignature": null } }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "renounceOwnership()", + "signature": "715018a616b5f2044428f6fadb7deef4ce9ca76ef60ea57978964ad137bbe7ae", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "revocable", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "revocable()", + "signature": "872a78104060b2611ad651114462af633b90f4846ddf96ef452cc3abaadbef00", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + } + ], + "name": "revoke", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "revoke(address)", + "signature": "74a8f1037ce3c16c732a634b5b87f893f40cae0feab5bbe0a6e4abb1ec12a744", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, { "constant": true, "inputs": [ { + "internalType": "address", "name": "token", "type": "address" } @@ -1014,6 +1081,7 @@ "name": "revoked", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -1030,21 +1098,22 @@ } }, { - "constant": false, - "inputs": [ + "constant": true, + "inputs": [], + "name": "start", + "outputs": [ { - "name": "token", - "type": "address" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "release", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "release(address)", - "signature": "19165587d81f9d3d0d57225d38f5bb5163beb87e4b5fafa3a2f80c53398d9874", + "method": "start()", + "signature": "be9a655586dceb82dfa0af992b5d8ae7fa45053cb7fd6f141f541da7572978c7", "index": [], "indexed": 0, "eventSignature": null @@ -1054,18 +1123,19 @@ "constant": false, "inputs": [ { - "name": "token", + "internalType": "address", + "name": "newOwner", "type": "address" } ], - "name": "revoke", + "name": "transferOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "revoke(address)", - "signature": "74a8f1037ce3c16c732a634b5b87f893f40cae0feab5bbe0a6e4abb1ec12a744", + "method": "transferOwnership(address)", + "signature": "f2fde38b092330466c661fc723d5289b90272a3e580e3187d1d7ef788506c557", "index": [], "indexed": 0, "eventSignature": null @@ -1074,14 +1144,17 @@ { "inputs": [ { + "internalType": "contract IERC20", "name": "token", "type": "address" }, { + "internalType": "address", "name": "beneficiary", "type": "address" }, { + "internalType": "uint256", "name": "releaseTime", "type": "uint256" } @@ -1097,27 +1170,6 @@ "eventSignature": null } }, - { - "constant": true, - "inputs": [], - "name": "releaseTime", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "__signatureData": { - "method": "releaseTime()", - "signature": "b91d4001c4daa83d4f7294c01ce39818a6bbd35ddb92d3c9ad5b4c783ef2dd86", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, { "constant": false, "inputs": [], @@ -1137,40 +1189,59 @@ { "constant": true, "inputs": [], - "name": "hasClosed", + "name": "releaseTime", "outputs": [ { + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "hasClosed()", - "signature": "1515bc2ba740d068ff684b5917a9ff7f391334e91f6e21d330213abf2fcf5997", + "method": "releaseTime()", + "signature": "b91d4001c4daa83d4f7294c01ce39818a6bbd35ddb92d3c9ad5b4c783ef2dd86", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, - "inputs": [], - "name": "isOpen", - "outputs": [ + "inputs": [ { - "name": "", - "type": "bool" + "internalType": "uint256", + "name": "openingTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "closingTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rate", + "type": "uint256" + }, + { + "internalType": "address payable", + "name": "wallet", + "type": "address" + }, + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" } ], "payable": false, - "stateMutability": "view", - "type": "function", + "stateMutability": "nonpayable", + "type": "constructor", "__signatureData": { - "method": "isOpen()", - "signature": "47535d7bce5fe30a985aaa3abea3945f910984e480fd44a01ec881dd75a69c53", + "method": null, + "signature": null, "index": [], "indexed": 0, "eventSignature": null @@ -1182,6 +1253,7 @@ "name": "closingTime", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -1197,77 +1269,89 @@ "eventSignature": null } }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "closingTime", + "type": "uint256" + } + ], + "name": "extendTime", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "extendTime(uint256)", + "signature": "a27aebbc8e1d8000e670bd0d5c45d68c88e22e90f018df5744507d0702e1d789", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, { "constant": true, "inputs": [], - "name": "openingTime", + "name": "hasClosed", "outputs": [ { + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "openingTime()", - "signature": "b7a8807ce18354d14128599c1de68278dae2b3f112ab7835c14880c3d10df567", + "method": "hasClosed()", + "signature": "1515bc2ba740d068ff684b5917a9ff7f391334e91f6e21d330213abf2fcf5997", "index": [], "indexed": 0, "eventSignature": null } }, { - "inputs": [ - { - "name": "openingTime", - "type": "uint256" - }, - { - "name": "closingTime", - "type": "uint256" - }, - { - "name": "rate", - "type": "uint256" - }, - { - "name": "wallet", - "type": "address" - }, + "constant": true, + "inputs": [], + "name": "isOpen", + "outputs": [ { - "name": "token", - "type": "address" + "internalType": "bool", + "name": "", + "type": "bool" } ], "payable": false, - "stateMutability": "nonpayable", - "type": "constructor", + "stateMutability": "view", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "isOpen()", + "signature": "47535d7bce5fe30a985aaa3abea3945f910984e480fd44a01ec881dd75a69c53", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, - "inputs": [ + "constant": true, + "inputs": [], + "name": "openingTime", + "outputs": [ { - "name": "closingTime", + "internalType": "uint256", + "name": "", "type": "uint256" } ], - "name": "extendTime", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "extendTime(uint256)", - "signature": "a27aebbc8e1d8000e670bd0d5c45d68c88e22e90f018df5744507d0702e1d789", + "method": "openingTime()", + "signature": "b7a8807ce18354d14128599c1de68278dae2b3f112ab7835c14880c3d10df567", "index": [], "indexed": 0, "eventSignature": null @@ -1276,10 +1360,12 @@ { "inputs": [ { + "internalType": "uint256", "name": "openingTime", "type": "uint256" }, { + "internalType": "uint256", "name": "closingTime", "type": "uint256" } @@ -1301,6 +1387,7 @@ "name": "INTERFACE_ID_ERC165", "outputs": [ { + "internalType": "bytes4", "name": "", "type": "bytes4" } @@ -1320,6 +1407,7 @@ "constant": true, "inputs": [ { + "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } @@ -1327,6 +1415,7 @@ "name": "supportsInterface", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -1346,6 +1435,7 @@ "constant": true, "inputs": [ { + "internalType": "uint256", "name": "value", "type": "uint256" } @@ -1353,6 +1443,7 @@ "name": "fromUint256", "outputs": [ { + "internalType": "string", "name": "", "type": "string" } @@ -1369,63 +1460,66 @@ } }, { - "constant": true, + "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } ], - "name": "isSigner", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], + "name": "addSigner", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "isSigner(address)", - "signature": "7df73e27995ff52c325122d47c8dcb5955711696cc862e8e9fe732521a2ca222", + "method": "addSigner(address)", + "signature": "eb12d61ed0d380b10fb1d0a0a39f088010b2fbd5ce83f19ba4758b13c0558d17", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, - "inputs": [], - "name": "renounceSigner", - "outputs": [], + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "isSigner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "renounceSigner()", - "signature": "e5c8b03d019369869471d1933fd14f2ab233bc1095eccc08bb7dbbb204604fe4", + "method": "isSigner(address)", + "signature": "7df73e27995ff52c325122d47c8dcb5955711696cc862e8e9fe732521a2ca222", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, - "inputs": [ - { - "name": "account", - "type": "address" - } - ], - "name": "addSigner", + "constant": true, + "inputs": [], + "name": "onlySignerMock", "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "addSigner(address)", - "signature": "eb12d61ed0d380b10fb1d0a0a39f088010b2fbd5ce83f19ba4758b13c0558d17", + "method": "onlySignerMock()", + "signature": "b44e2ab953337bf642122bbdd26b6a4c6796c98b1f047441f438bb4dd15dbc9d", "index": [], "indexed": 0, "eventSignature": null @@ -1435,6 +1529,7 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } @@ -1453,16 +1548,16 @@ } }, { - "constant": true, + "constant": false, "inputs": [], - "name": "onlySignerMock", + "name": "renounceSigner", "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "onlySignerMock()", - "signature": "b44e2ab953337bf642122bbdd26b6a4c6796c98b1f047441f438bb4dd15dbc9d", + "method": "renounceSigner()", + "signature": "e5c8b03d019369869471d1933fd14f2ab233bc1095eccc08bb7dbbb204604fe4", "index": [], "indexed": 0, "eventSignature": null @@ -1472,17 +1567,20 @@ "constant": true, "inputs": [ { + "internalType": "int256", "name": "a", "type": "int256" }, { + "internalType": "int256", "name": "b", "type": "int256" } ], - "name": "mul", + "name": "add", "outputs": [ { + "internalType": "int256", "name": "", "type": "int256" } @@ -1491,8 +1589,8 @@ "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "mul(int256,int256)", - "signature": "bbe93d91b114db244bee40cafeeaae72456bbb2f92985a1729ce3d574fc8ef0e", + "method": "add(int256,int256)", + "signature": "a5f3c23ba07e6c3b914d9273b1ef72b2e6620dbfe328f76b4725526445930fc9", "index": [], "indexed": 0, "eventSignature": null @@ -1502,10 +1600,12 @@ "constant": true, "inputs": [ { + "internalType": "int256", "name": "a", "type": "int256" }, { + "internalType": "int256", "name": "b", "type": "int256" } @@ -1513,6 +1613,7 @@ "name": "div", "outputs": [ { + "internalType": "int256", "name": "", "type": "int256" } @@ -1532,17 +1633,20 @@ "constant": true, "inputs": [ { + "internalType": "int256", "name": "a", "type": "int256" }, { + "internalType": "int256", "name": "b", "type": "int256" } ], - "name": "sub", + "name": "mul", "outputs": [ { + "internalType": "int256", "name": "", "type": "int256" } @@ -1551,8 +1655,8 @@ "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "sub(int256,int256)", - "signature": "adefc37b172bf21b20e90b531fd12a315745366e9f3932bdb3ed5a4c002e45e0", + "method": "mul(int256,int256)", + "signature": "bbe93d91b114db244bee40cafeeaae72456bbb2f92985a1729ce3d574fc8ef0e", "index": [], "indexed": 0, "eventSignature": null @@ -1562,17 +1666,20 @@ "constant": true, "inputs": [ { + "internalType": "int256", "name": "a", "type": "int256" }, { + "internalType": "int256", "name": "b", "type": "int256" } ], - "name": "add", + "name": "sub", "outputs": [ { + "internalType": "int256", "name": "", "type": "int256" } @@ -1581,8 +1688,8 @@ "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "add(int256,int256)", - "signature": "a5f3c23ba07e6c3b914d9273b1ef72b2e6620dbfe328f76b4725526445930fc9", + "method": "sub(int256,int256)", + "signature": "adefc37b172bf21b20e90b531fd12a315745366e9f3932bdb3ed5a4c002e45e0", "index": [], "indexed": 0, "eventSignature": null @@ -1608,27 +1715,47 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" - }, + } + ], + "name": "addMinter", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "addMinter(address)", + "signature": "983b2d560bdd6b422e26073d9516b4646e2f1008810070c0d32b3a79aaa7bfcb", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ { - "name": "amount", - "type": "uint256" + "internalType": "address", + "name": "account", + "type": "address" } ], - "name": "mint", + "name": "isMinter", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "mint(address,uint256)", - "signature": "40c10f19c047ae7dfa66d6312b683d2ea3dfbcb4159e96b967c5f4b0a86f2842", + "method": "isMinter(address)", + "signature": "aa271e1a9a41b51f5b4e2e4ce717c974174719a5ddc12cee839f0eabbdf42748", "index": [], "indexed": 0, "eventSignature": null @@ -1638,18 +1765,30 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "addMinter", - "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "addMinter(address)", - "signature": "983b2d560bdd6b422e26073d9516b4646e2f1008810070c0d32b3a79aaa7bfcb", + "method": "mint(address,uint256)", + "signature": "40c10f19c047ae7dfa66d6312b683d2ea3dfbcb4159e96b967c5f4b0a86f2842", "index": [], "indexed": 0, "eventSignature": null @@ -1672,26 +1811,49 @@ } }, { - "constant": true, "inputs": [ { - "name": "account", + "internalType": "uint256", + "name": "openingTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "closingTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rate", + "type": "uint256" + }, + { + "internalType": "address payable", + "name": "wallet", "type": "address" - } - ], - "name": "isMinter", - "outputs": [ + }, { - "name": "", - "type": "bool" + "internalType": "uint256", + "name": "cap", + "type": "uint256" + }, + { + "internalType": "contract ERC20Mintable", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "goal", + "type": "uint256" } ], "payable": false, - "stateMutability": "view", - "type": "function", + "stateMutability": "nonpayable", + "type": "constructor", "__signatureData": { - "method": "isMinter(address)", - "signature": "aa271e1a9a41b51f5b4e2e4ce717c974174719a5ddc12cee839f0eabbdf42748", + "method": null, + "signature": null, "index": [], "indexed": 0, "eventSignature": null @@ -1703,6 +1865,7 @@ "name": "cap", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -1721,19 +1884,42 @@ { "constant": true, "inputs": [], - "name": "goal", + "name": "capReached", "outputs": [ { + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "goal()", - "signature": "40193883b14c14dda7eef4dec651b30d3485ba1fdc9225dd408d696a03be91a4", + "method": "capReached()", + "signature": "4f93594559fed5d595e1474bcf0c52eb70b3230bf9fcff5ce2aa0a1df1c2fc9c", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address payable", + "name": "refundee", + "type": "address" + } + ], + "name": "claimRefund", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "claimRefund(address)", + "signature": "bffa55d5aa2ff90554572b1dce591d02b722be50bcfd4c7c58c507d2f080b61b", "index": [], "indexed": 0, "eventSignature": null @@ -1758,9 +1944,10 @@ { "constant": true, "inputs": [], - "name": "capReached", + "name": "finalized", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -1769,8 +1956,8 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "capReached()", - "signature": "4f93594559fed5d595e1474bcf0c52eb70b3230bf9fcff5ce2aa0a1df1c2fc9c", + "method": "finalized()", + "signature": "b3f05b97fdf124cf473a8bb0c51089e7f531c2ee86e7dd8dce89ac30a488f0ab", "index": [], "indexed": 0, "eventSignature": null @@ -1779,19 +1966,20 @@ { "constant": true, "inputs": [], - "name": "goalReached", + "name": "goal", "outputs": [ { + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "goalReached()", - "signature": "7d3d65229eb2e3f47f0aeb7b8f366daefbe13b196c607159fd4cde7eaabfdd7e", + "method": "goal()", + "signature": "40193883b14c14dda7eef4dec651b30d3485ba1fdc9225dd408d696a03be91a4", "index": [], "indexed": 0, "eventSignature": null @@ -1800,9 +1988,10 @@ { "constant": true, "inputs": [], - "name": "finalized", + "name": "goalReached", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -1811,71 +2000,74 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "finalized()", - "signature": "b3f05b97fdf124cf473a8bb0c51089e7f531c2ee86e7dd8dce89ac30a488f0ab", + "method": "goalReached()", + "signature": "7d3d65229eb2e3f47f0aeb7b8f366daefbe13b196c607159fd4cde7eaabfdd7e", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "refundee", - "type": "address" + "internalType": "uint256", + "name": "a", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "b", + "type": "uint256" + } + ], + "name": "add", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "claimRefund", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "claimRefund(address)", - "signature": "bffa55d5aa2ff90554572b1dce591d02b722be50bcfd4c7c58c507d2f080b61b", + "method": "add(uint256,uint256)", + "signature": "771602f7f25ce61b0d4f2430f7e4789bfd9e6e4029613fda01b7f2c89fbf44ad", "index": [], "indexed": 0, "eventSignature": null } }, { + "constant": true, "inputs": [ { - "name": "openingTime", + "internalType": "uint256", + "name": "a", "type": "uint256" }, { - "name": "closingTime", + "internalType": "uint256", + "name": "b", "type": "uint256" - }, + } + ], + "name": "div", + "outputs": [ { - "name": "rate", - "type": "uint256" - }, - { - "name": "wallet", - "type": "address" - }, - { - "name": "cap", - "type": "uint256" - }, - { - "name": "token", - "type": "address" - }, - { - "name": "goal", + "internalType": "uint256", + "name": "", "type": "uint256" } ], "payable": false, - "stateMutability": "nonpayable", - "type": "constructor", + "stateMutability": "pure", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "div(uint256,uint256)", + "signature": "a391c15b5e25fe2c4f540fe83ee2e810afc45df8c9095b3c54843078d5162044", "index": [], "indexed": 0, "eventSignature": null @@ -1885,17 +2077,20 @@ "constant": true, "inputs": [ { + "internalType": "uint256", "name": "a", "type": "uint256" }, { + "internalType": "uint256", "name": "b", "type": "uint256" } ], - "name": "mul", + "name": "mod", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -1904,8 +2099,8 @@ "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "mul(uint256,uint256)", - "signature": "c8a4ac9cf5aac391a07a9bdc2c522f2e824978425be99588f97394814d127214", + "method": "mod(uint256,uint256)", + "signature": "f43f523a11282709abfcd65af86db2cfddca6ecd71f78e335355cc7cddd8ef2c", "index": [], "indexed": 0, "eventSignature": null @@ -1915,17 +2110,20 @@ "constant": true, "inputs": [ { + "internalType": "uint256", "name": "a", "type": "uint256" }, { + "internalType": "uint256", "name": "b", "type": "uint256" } ], - "name": "div", + "name": "mul", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -1934,8 +2132,8 @@ "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "div(uint256,uint256)", - "signature": "a391c15b5e25fe2c4f540fe83ee2e810afc45df8c9095b3c54843078d5162044", + "method": "mul(uint256,uint256)", + "signature": "c8a4ac9cf5aac391a07a9bdc2c522f2e824978425be99588f97394814d127214", "index": [], "indexed": 0, "eventSignature": null @@ -1945,10 +2143,12 @@ "constant": true, "inputs": [ { + "internalType": "uint256", "name": "a", "type": "uint256" }, { + "internalType": "uint256", "name": "b", "type": "uint256" } @@ -1956,6 +2156,7 @@ "name": "sub", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -1972,78 +2173,129 @@ } }, { - "constant": true, "inputs": [ { - "name": "a", - "type": "uint256" - }, - { - "name": "b", - "type": "uint256" + "internalType": "contract IERC20", + "name": "token", + "type": "address" } ], - "name": "add", + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor", + "__signatureData": { + "method": null, + "signature": null, + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "allowance", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, - "stateMutability": "pure", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "add(uint256,uint256)", - "signature": "771602f7f25ce61b0d4f2430f7e4789bfd9e6e4029613fda01b7f2c89fbf44ad", + "method": "allowance()", + "signature": "de242ff44eaf9672978cebc9ed1e790957e7916a8047ae5cbd0d7d313ee83b98", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "a", + "internalType": "uint256", + "name": "amount", "type": "uint256" - }, + } + ], + "name": "approve", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "approve(uint256)", + "signature": "b759f954a973cc61187fb2d8ad2671610ddf40018143445f877381866da14ba2", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ { - "name": "b", + "internalType": "uint256", + "name": "amount", "type": "uint256" } ], - "name": "mod", - "outputs": [ + "name": "decreaseAllowance", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "decreaseAllowance(uint256)", + "signature": "10bad4cf682bbcd21585dce2167d59122587579177e2aeddf05870c0f83ca0aa", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ { - "name": "", + "internalType": "uint256", + "name": "amount", "type": "uint256" } ], + "name": "increaseAllowance", + "outputs": [], "payable": false, - "stateMutability": "pure", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "mod(uint256,uint256)", - "signature": "f43f523a11282709abfcd65af86db2cfddca6ecd71f78e335355cc7cddd8ef2c", + "method": "increaseAllowance(uint256)", + "signature": "11e330b2f7a89b9245ad53c2cf8b73418c0c35e979c862a29e386a29b7f376d2", "index": [], "indexed": 0, "eventSignature": null } }, { + "constant": false, "inputs": [ { - "name": "token", - "type": "address" + "internalType": "uint256", + "name": "allowance_", + "type": "uint256" } ], + "name": "setAllowance", + "outputs": [], "payable": false, "stateMutability": "nonpayable", - "type": "constructor", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "setAllowance(uint256)", + "signature": "3ba93f263461e1faf95940bf8b85a591b097726d6b4f1a2f81673df4474ad03b", "index": [], "indexed": 0, "eventSignature": null @@ -2082,126 +2334,140 @@ } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "amount", + "internalType": "uint256", + "name": "a", "type": "uint256" } ], - "name": "approve", - "outputs": [], + "name": "toUint128", + "outputs": [ + { + "internalType": "uint128", + "name": "", + "type": "uint128" + } + ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "approve(uint256)", - "signature": "b759f954a973cc61187fb2d8ad2671610ddf40018143445f877381866da14ba2", + "method": "toUint128(uint256)", + "signature": "809fdd33ec59cbc70dd4d4dc44b6cd3d3c04ced41d7835a8ff25b79f25b45fce", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "amount", + "internalType": "uint256", + "name": "a", "type": "uint256" } ], - "name": "increaseAllowance", - "outputs": [], + "name": "toUint16", + "outputs": [ + { + "internalType": "uint16", + "name": "", + "type": "uint16" + } + ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "increaseAllowance(uint256)", - "signature": "11e330b2f7a89b9245ad53c2cf8b73418c0c35e979c862a29e386a29b7f376d2", + "method": "toUint16(uint256)", + "signature": "9374068f97bd6cb9d0c0b55b775b200664fefe764a60946aece3b31d1afa2cde", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "amount", + "internalType": "uint256", + "name": "a", "type": "uint256" } ], - "name": "decreaseAllowance", - "outputs": [], + "name": "toUint32", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "decreaseAllowance(uint256)", - "signature": "10bad4cf682bbcd21585dce2167d59122587579177e2aeddf05870c0f83ca0aa", + "method": "toUint32(uint256)", + "signature": "c8193255f4cc629b6c8496a08fb302fe8c9a7459975dad3c6accbb7ff35f4395", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "allowance_", + "internalType": "uint256", + "name": "a", "type": "uint256" } ], - "name": "setAllowance", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "__signatureData": { - "method": "setAllowance(uint256)", - "signature": "3ba93f263461e1faf95940bf8b85a591b097726d6b4f1a2f81673df4474ad03b", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": true, - "inputs": [], - "name": "allowance", + "name": "toUint64", "outputs": [ { + "internalType": "uint64", "name": "", - "type": "uint256" + "type": "uint64" } ], "payable": false, - "stateMutability": "view", + "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "allowance()", - "signature": "de242ff44eaf9672978cebc9ed1e790957e7916a8047ae5cbd0d7d313ee83b98", + "method": "toUint64(uint256)", + "signature": "2665fad0bf4103f8162e9d4ab2c9e8daef60477cc969473217d6c2362f69d8a5", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "account", - "type": "address" + "internalType": "uint256", + "name": "a", + "type": "uint256" + } + ], + "name": "toUint8", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" } ], - "name": "add", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "add(address)", - "signature": "0a3b0a4f4c6e53dce3dbcad5614cb2ba3a0fa7326d03c5d64b4fa2d565492737", + "method": "toUint8(uint256)", + "signature": "0cc4681ea387e97ba648bd82290c2b0a6115fc05a9383ac3593426a270ece6ad", "index": [], "indexed": 0, "eventSignature": null @@ -2211,18 +2477,19 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } ], - "name": "remove", + "name": "add", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "remove(address)", - "signature": "29092d0ea9bcb5211809a4aaa5b0ebb94e6bef61bfe589f02c6c6fb1b193ffab", + "method": "add(address)", + "signature": "0a3b0a4f4c6e53dce3dbcad5614cb2ba3a0fa7326d03c5d64b4fa2d565492737", "index": [], "indexed": 0, "eventSignature": null @@ -2232,6 +2499,7 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } @@ -2239,6 +2507,7 @@ "name": "has", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -2258,18 +2527,19 @@ "constant": false, "inputs": [ { - "name": "beneficiary", + "internalType": "address", + "name": "account", "type": "address" } ], - "name": "withdrawTokens", + "name": "remove", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "withdrawTokens(address)", - "signature": "49df728c0ca6a6b5e99c72209a641756a92fc07ea31ddd473da43c9e1ee22167", + "method": "remove(address)", + "signature": "29092d0ea9bcb5211809a4aaa5b0ebb94e6bef61bfe589f02c6c6fb1b193ffab", "index": [], "indexed": 0, "eventSignature": null @@ -2278,26 +2548,32 @@ { "inputs": [ { + "internalType": "uint256", "name": "openingTime", "type": "uint256" }, { + "internalType": "uint256", "name": "closingTime", "type": "uint256" }, { + "internalType": "uint256", "name": "rate", "type": "uint256" }, { + "internalType": "address payable", "name": "wallet", "type": "address" }, { + "internalType": "contract IERC20", "name": "token", "type": "address" }, { + "internalType": "uint256", "name": "goal", "type": "uint256" } @@ -2314,60 +2590,114 @@ } }, { + "constant": false, "inputs": [ { - "name": "goal", - "type": "uint256" + "internalType": "address", + "name": "beneficiary", + "type": "address" } ], + "name": "withdrawTokens", + "outputs": [], "payable": false, "stateMutability": "nonpayable", - "type": "constructor", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "withdrawTokens(address)", + "signature": "49df728c0ca6a6b5e99c72209a641756a92fc07ea31ddd473da43c9e1ee22167", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, "inputs": [ { - "name": "payee", - "type": "address" + "internalType": "uint256", + "name": "goal", + "type": "uint256" } ], - "name": "withdraw", - "outputs": [], "payable": false, "stateMutability": "nonpayable", - "type": "function", + "type": "constructor", "__signatureData": { - "method": "withdraw(address)", - "signature": "51cff8d9250863e8fc5cd0539fa8c8d5a5201deba4fa87f6350c7586c06e5914", + "method": null, + "signature": null, "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, "inputs": [ { - "name": "payee", + "internalType": "address payable", + "name": "beneficiary", "type": "address" } ], - "name": "withdrawWithGas", + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor", + "__signatureData": { + "method": null, + "signature": null, + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [], + "name": "beneficiaryWithdraw", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "withdrawWithGas(address)", - "signature": "6809691ae9e5a0f8c57d249bed22874ecd3174786e9025089a9709509288d78a", + "method": "beneficiaryWithdraw()", + "signature": "9af6549a65e0ba7ce4b0aee44adb9e1d42df7600cf590db392d719ba752944d1", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [], + "name": "close", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "close()", + "signature": "43d726d69bfad97630bc12e80b1a43c44fecfddf089a314709482b2b0132f662", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "refundee", + "type": "address" + } + ], + "name": "deposit", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function", + "__signatureData": { + "method": "deposit(address)", + "signature": "f340fa01ba70ec28a2fc9deca0888a496a2ab4c153fdd320f62dca6e72f8cbff", "index": [], "indexed": 0, "eventSignature": null @@ -2377,6 +2707,7 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "payee", "type": "address" } @@ -2384,6 +2715,7 @@ "name": "depositsOf", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -2400,18 +2732,16 @@ } }, { - "inputs": [ - { - "name": "beneficiary", - "type": "address" - } - ], + "constant": false, + "inputs": [], + "name": "enableRefunds", + "outputs": [], "payable": false, "stateMutability": "nonpayable", - "type": "constructor", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "enableRefunds()", + "signature": "8c52dc41c32b5cdcd11391ff8fe832366bb985c7743bb1d159489ed533d18151", "index": [], "indexed": 0, "eventSignature": null @@ -2423,6 +2753,7 @@ "name": "state", "outputs": [ { + "internalType": "enum RefundEscrow.State", "name": "", "type": "uint8" } @@ -2442,50 +2773,19 @@ "constant": false, "inputs": [ { - "name": "refundee", + "internalType": "address payable", + "name": "payee", "type": "address" } ], - "name": "deposit", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "type": "function", - "__signatureData": { - "method": "deposit(address)", - "signature": "f340fa01ba70ec28a2fc9deca0888a496a2ab4c153fdd320f62dca6e72f8cbff", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": false, - "inputs": [], - "name": "close", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "__signatureData": { - "method": "close()", - "signature": "43d726d69bfad97630bc12e80b1a43c44fecfddf089a314709482b2b0132f662", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": false, - "inputs": [], - "name": "enableRefunds", + "name": "withdraw", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "enableRefunds()", - "signature": "8c52dc41c32b5cdcd11391ff8fe832366bb985c7743bb1d159489ed533d18151", + "method": "withdraw(address)", + "signature": "51cff8d9250863e8fc5cd0539fa8c8d5a5201deba4fa87f6350c7586c06e5914", "index": [], "indexed": 0, "eventSignature": null @@ -2493,15 +2793,21 @@ }, { "constant": false, - "inputs": [], - "name": "beneficiaryWithdraw", + "inputs": [ + { + "internalType": "address payable", + "name": "payee", + "type": "address" + } + ], + "name": "withdrawWithGas", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "beneficiaryWithdraw()", - "signature": "9af6549a65e0ba7ce4b0aee44adb9e1d42df7600cf590db392d719ba752944d1", + "method": "withdrawWithGas(address)", + "signature": "6809691ae9e5a0f8c57d249bed22874ecd3174786e9025089a9709509288d78a", "index": [], "indexed": 0, "eventSignature": null @@ -2511,6 +2817,7 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "", "type": "address" } @@ -2518,6 +2825,7 @@ "name": "withdrawalAllowed", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -2534,21 +2842,16 @@ } }, { - "constant": true, + "constant": false, "inputs": [], - "name": "counter", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], + "name": "callback", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "counter()", - "signature": "61bc221a8a81ed8dcf68fb79e95091717f0287b80c647d460792d4a6fa2e52eb", + "method": "callback()", + "signature": "083b2732f78169bfaad6b407fa338cc97d697ed69d3915a18239cc111d51a402", "index": [], "indexed": 0, "eventSignature": null @@ -2556,15 +2859,21 @@ }, { "constant": false, - "inputs": [], - "name": "callback", + "inputs": [ + { + "internalType": "contract ReentrancyAttack", + "name": "attacker", + "type": "address" + } + ], + "name": "countAndCall", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "callback()", - "signature": "083b2732f78169bfaad6b407fa338cc97d697ed69d3915a18239cc111d51a402", + "method": "countAndCall(address)", + "signature": "b672ad8b8bf1e348aeb6a8ae25066364f905dde7277bbf922f19de877bbcbcfd", "index": [], "indexed": 0, "eventSignature": null @@ -2574,6 +2883,7 @@ "constant": false, "inputs": [ { + "internalType": "uint256", "name": "n", "type": "uint256" } @@ -2595,6 +2905,7 @@ "constant": false, "inputs": [ { + "internalType": "uint256", "name": "n", "type": "uint256" } @@ -2613,21 +2924,22 @@ } }, { - "constant": false, - "inputs": [ + "constant": true, + "inputs": [], + "name": "counter", + "outputs": [ { - "name": "attacker", - "type": "address" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "countAndCall", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "countAndCall(address)", - "signature": "b672ad8b8bf1e348aeb6a8ae25066364f905dde7277bbf922f19de877bbcbcfd", + "method": "counter()", + "signature": "61bc221a8a81ed8dcf68fb79e95091717f0287b80c647d460792d4a6fa2e52eb", "index": [], "indexed": 0, "eventSignature": null @@ -2637,6 +2949,7 @@ "constant": false, "inputs": [ { + "internalType": "bytes4", "name": "data", "type": "bytes4" } @@ -2655,21 +2968,13 @@ } }, { - "constant": false, - "inputs": [ - { - "name": "payee", - "type": "address" - } - ], - "name": "withdrawPayments", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", + "inputs": [], + "payable": true, + "stateMutability": "payable", + "type": "constructor", "__signatureData": { - "method": "withdrawPayments(address)", - "signature": "31b3eb94bf3cb27e4befc6a7d368e588019d82d31d1e29f0cbf0300ba0ae9e2e", + "method": null, + "signature": null, "index": [], "indexed": 0, "eventSignature": null @@ -2679,18 +2984,24 @@ "constant": false, "inputs": [ { - "name": "payee", + "internalType": "address", + "name": "dest", "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" } ], - "name": "withdrawPaymentsWithGas", + "name": "callTransfer", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "withdrawPaymentsWithGas(address)", - "signature": "653cfa5902f28be1cc0010a15dc0e48b4dbbbdd8d06323ede1836ba371423d1a", + "method": "callTransfer(address,uint256)", + "signature": "d444099120fe924eee0b46151366fd5c5b586714e3776ad6423f20986508bb7a", "index": [], "indexed": 0, "eventSignature": null @@ -2700,6 +3011,7 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "dest", "type": "address" } @@ -2707,6 +3019,7 @@ "name": "payments", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -2723,13 +3036,22 @@ } }, { - "inputs": [], - "payable": true, - "stateMutability": "payable", - "type": "constructor", + "constant": false, + "inputs": [ + { + "internalType": "address payable", + "name": "payee", + "type": "address" + } + ], + "name": "withdrawPayments", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "withdrawPayments(address)", + "signature": "31b3eb94bf3cb27e4befc6a7d368e588019d82d31d1e29f0cbf0300ba0ae9e2e", "index": [], "indexed": 0, "eventSignature": null @@ -2739,22 +3061,19 @@ "constant": false, "inputs": [ { - "name": "dest", + "internalType": "address payable", + "name": "payee", "type": "address" - }, - { - "name": "amount", - "type": "uint256" } ], - "name": "callTransfer", + "name": "withdrawPaymentsWithGas", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "callTransfer(address,uint256)", - "signature": "d444099120fe924eee0b46151366fd5c5b586714e3776ad6423f20986508bb7a", + "method": "withdrawPaymentsWithGas(address)", + "signature": "653cfa5902f28be1cc0010a15dc0e48b4dbbbdd8d06323ede1836ba371423d1a", "index": [], "indexed": 0, "eventSignature": null @@ -2763,10 +3082,12 @@ { "inputs": [ { + "internalType": "address[]", "name": "payees", "type": "address[]" }, { + "internalType": "uint256[]", "name": "shares", "type": "uint256[]" } @@ -2784,41 +3105,49 @@ }, { "constant": true, - "inputs": [], - "name": "totalShares", + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "payee", "outputs": [ { + "internalType": "address", "name": "", - "type": "uint256" + "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "totalShares()", - "signature": "3a98ef39d75a0463a589a77e7570097b7e407deab0b5678402f964703022acc1", + "method": "payee(uint256)", + "signature": "8b83209b99041e6da916f8608f0e4b26e544903e9cccd82f1e4d56d4b000973f", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, - "inputs": [], - "name": "totalReleased", - "outputs": [ + "constant": false, + "inputs": [ { - "name": "", - "type": "uint256" + "internalType": "address payable", + "name": "account", + "type": "address" } ], + "name": "release", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "totalReleased()", - "signature": "e33b7de3b4be2fc8b13374ba49c74d26662811d0233a4d730a02537c6f69e3d2", + "method": "release(address)", + "signature": "19165587d81f9d3d0d57225d38f5bb5163beb87e4b5fafa3a2f80c53398d9874", "index": [], "indexed": 0, "eventSignature": null @@ -2828,13 +3157,15 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } ], - "name": "shares", + "name": "released", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -2843,8 +3174,8 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "shares(address)", - "signature": "ce7c2ac2babd16f4d8c518abdcb99ed8e1402512d3d522f56911309564fde112", + "method": "released(address)", + "signature": "9852595c0fbd961d727982297e4c952a54c25835b2c098f8db439cef15df7ced", "index": [], "indexed": 0, "eventSignature": null @@ -2854,13 +3185,15 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } ], - "name": "released", + "name": "shares", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -2869,8 +3202,8 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "released(address)", - "signature": "9852595c0fbd961d727982297e4c952a54c25835b2c098f8db439cef15df7ced", + "method": "shares(address)", + "signature": "ce7c2ac2babd16f4d8c518abdcb99ed8e1402512d3d522f56911309564fde112", "index": [], "indexed": 0, "eventSignature": null @@ -2878,25 +3211,43 @@ }, { "constant": true, - "inputs": [ + "inputs": [], + "name": "totalReleased", + "outputs": [ { - "name": "index", + "internalType": "uint256", + "name": "", "type": "uint256" } ], - "name": "payee", + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "totalReleased()", + "signature": "e33b7de3b4be2fc8b13374ba49c74d26662811d0233a4d730a02537c6f69e3d2", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "totalShares", "outputs": [ { + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "payee(uint256)", - "signature": "8b83209b99041e6da916f8608f0e4b26e544903e9cccd82f1e4d56d4b000973f", + "method": "totalShares()", + "signature": "3a98ef39d75a0463a589a77e7570097b7e407deab0b5678402f964703022acc1", "index": [], "indexed": 0, "eventSignature": null @@ -2906,18 +3257,19 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } ], - "name": "release", + "name": "addPauser", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "release(address)", - "signature": "19165587d81f9d3d0d57225d38f5bb5163beb87e4b5fafa3a2f80c53398d9874", + "method": "addPauser(address)", + "signature": "82dc1ec426f590f8e02fbc1e3fcd7395a4cc661900beaeea90dc088b2956fc37", "index": [], "indexed": 0, "eventSignature": null @@ -2927,6 +3279,7 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } @@ -2934,6 +3287,7 @@ "name": "isPauser", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -2950,37 +3304,16 @@ } }, { - "constant": false, + "constant": true, "inputs": [], - "name": "renouncePauser", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "__signatureData": { - "method": "renouncePauser()", - "signature": "6ef8d66d09e9638ba6c52670cc83e8112ad6c16152362ed3ceaf81ba38a55620", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": false, - "inputs": [ - { - "name": "account", - "type": "address" - } - ], - "name": "addPauser", + "name": "onlyPauserMock", "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "addPauser(address)", - "signature": "82dc1ec426f590f8e02fbc1e3fcd7395a4cc661900beaeea90dc088b2956fc37", + "method": "onlyPauserMock()", + "signature": "329daf90db5adf232d700a8646026bc8cec2c58f5196cbd0f9d1da14fe7c13af", "index": [], "indexed": 0, "eventSignature": null @@ -2990,6 +3323,7 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } @@ -3008,16 +3342,16 @@ } }, { - "constant": true, + "constant": false, "inputs": [], - "name": "onlyPauserMock", + "name": "renouncePauser", "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "onlyPauserMock()", - "signature": "329daf90db5adf232d700a8646026bc8cec2c58f5196cbd0f9d1da14fe7c13af", + "method": "renouncePauser()", + "signature": "6ef8d66d09e9638ba6c52670cc83e8112ad6c16152362ed3ceaf81ba38a55620", "index": [], "indexed": 0, "eventSignature": null @@ -3029,6 +3363,7 @@ "name": "count", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -3047,14 +3382,14 @@ { "constant": false, "inputs": [], - "name": "unpause", + "name": "drasticMeasure", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "unpause()", - "signature": "3f4ba83af89dc9793996d9e56b8abe6dc88cd97c9c2bb23027806e9c1ffd54dc", + "method": "drasticMeasure()", + "signature": "9958f0458a205db2b6fd3761855edea436acb6641e0146dd103049809dec8a3c", "index": [], "indexed": 0, "eventSignature": null @@ -3063,9 +3398,10 @@ { "constant": true, "inputs": [], - "name": "paused", + "name": "drasticMeasureTaken", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -3074,29 +3410,24 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "paused()", - "signature": "5c975abbf8c4d6efa68fc896e233763eb503f2318260b7bf59b19412913788b2", + "method": "drasticMeasureTaken()", + "signature": "76657b8e9f8871e69f7ec04e85644b5b24216603938143a793e736009e7e09e6", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [], - "name": "drasticMeasureTaken", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], + "name": "normalProcess", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "drasticMeasureTaken()", - "signature": "76657b8e9f8871e69f7ec04e85644b5b24216603938143a793e736009e7e09e6", + "method": "normalProcess()", + "signature": "e7651d7aafddcc3ef76b5e1ee2ca687555fb23ebd00d0784dfea8224ed24b768", "index": [], "indexed": 0, "eventSignature": null @@ -3119,16 +3450,22 @@ } }, { - "constant": false, + "constant": true, "inputs": [], - "name": "normalProcess", - "outputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "normalProcess()", - "signature": "e7651d7aafddcc3ef76b5e1ee2ca687555fb23ebd00d0784dfea8224ed24b768", + "method": "paused()", + "signature": "5c975abbf8c4d6efa68fc896e233763eb503f2318260b7bf59b19412913788b2", "index": [], "indexed": 0, "eventSignature": null @@ -3137,14 +3474,43 @@ { "constant": false, "inputs": [], - "name": "drasticMeasure", + "name": "unpause", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "drasticMeasure()", - "signature": "9958f0458a205db2b6fd3761855edea436acb6641e0146dd103049809dec8a3c", + "method": "unpause()", + "signature": "3f4ba83af89dc9793996d9e56b8abe6dc88cd97c9c2bb23027806e9c1ffd54dc", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_rate", + "type": "uint256" + }, + { + "internalType": "address payable", + "name": "_wallet", + "type": "address" + }, + { + "internalType": "contract ERC20", + "name": "_token", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor", + "__signatureData": { + "method": null, + "signature": null, "index": [], "indexed": 0, "eventSignature": null @@ -3156,6 +3522,7 @@ "name": "getInterfaceId", "outputs": [ { + "internalType": "bytes4", "name": "", "type": "bytes4" } @@ -3171,10 +3538,27 @@ "eventSignature": null } }, + { + "constant": true, + "inputs": [], + "name": "onlyMinterMock", + "outputs": [], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "onlyMinterMock()", + "signature": "b5dba35b6d1bf340f7be937f68a63a7272765239305ff53eba7b42cdcaa26a04", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, { "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } @@ -3192,33 +3576,20 @@ "eventSignature": null } }, - { - "constant": true, - "inputs": [], - "name": "onlyMinterMock", - "outputs": [], - "payable": false, - "stateMutability": "view", - "type": "function", - "__signatureData": { - "method": "onlyMinterMock()", - "signature": "b5dba35b6d1bf340f7be937f68a63a7272765239305ff53eba7b42cdcaa26a04", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, { "inputs": [ { + "internalType": "uint256", "name": "rate", "type": "uint256" }, { + "internalType": "address payable", "name": "wallet", "type": "address" }, { + "internalType": "contract ERC20Mintable", "name": "token", "type": "address" } @@ -3238,14 +3609,17 @@ "constant": true, "inputs": [ { + "internalType": "bytes32[]", "name": "proof", "type": "bytes32[]" }, { + "internalType": "bytes32", "name": "root", "type": "bytes32" }, { + "internalType": "bytes32", "name": "leaf", "type": "bytes32" } @@ -3253,6 +3627,7 @@ "name": "verify", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -3272,17 +3647,20 @@ "constant": true, "inputs": [ { + "internalType": "uint256", "name": "a", "type": "uint256" }, { + "internalType": "uint256", "name": "b", "type": "uint256" } ], - "name": "max", + "name": "average", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -3291,8 +3669,8 @@ "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "max(uint256,uint256)", - "signature": "6d5433e60c0e37182e8640acdecd142bfe64bc13cf849efdcb641717d2842d9d", + "method": "average(uint256,uint256)", + "signature": "2b7423abf0c092723f89beda5daa1c6b1a7c433c1d9e7f74a66262925656f297", "index": [], "indexed": 0, "eventSignature": null @@ -3302,17 +3680,20 @@ "constant": true, "inputs": [ { + "internalType": "uint256", "name": "a", "type": "uint256" }, { + "internalType": "uint256", "name": "b", "type": "uint256" } ], - "name": "min", + "name": "max", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -3321,8 +3702,8 @@ "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "min(uint256,uint256)", - "signature": "7ae2b5c7066d52e453426c67b3fad21baae01a9be722818751aa86781dbfb5c2", + "method": "max(uint256,uint256)", + "signature": "6d5433e60c0e37182e8640acdecd142bfe64bc13cf849efdcb641717d2842d9d", "index": [], "indexed": 0, "eventSignature": null @@ -3332,17 +3713,20 @@ "constant": true, "inputs": [ { + "internalType": "uint256", "name": "a", "type": "uint256" }, { + "internalType": "uint256", "name": "b", "type": "uint256" } ], - "name": "average", + "name": "min", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -3351,60 +3735,37 @@ "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "average(uint256,uint256)", - "signature": "2b7423abf0c092723f89beda5daa1c6b1a7c433c1d9e7f74a66262925656f297", + "method": "min(uint256,uint256)", + "signature": "7ae2b5c7066d52e453426c67b3fad21baae01a9be722818751aa86781dbfb5c2", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, "inputs": [ { - "name": "beneficiary", + "internalType": "uint256", + "name": "rate", + "type": "uint256" + }, + { + "internalType": "address payable", + "name": "wallet", "type": "address" - } - ], - "name": "getContribution", - "outputs": [ + }, { - "name": "", - "type": "uint256" + "internalType": "contract IERC20", + "name": "token", + "type": "address" } ], "payable": false, - "stateMutability": "view", - "type": "function", + "stateMutability": "nonpayable", + "type": "constructor", "__signatureData": { - "method": "getContribution(address)", - "signature": "21eff7fc1631da8139bce6c02359fc3e44205c53bb3b122a22a25d0cc4b9f32a", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": true, - "inputs": [ - { - "name": "account", - "type": "address" - } - ], - "name": "isCapper", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "__signatureData": { - "method": "isCapper(address)", - "signature": "395645610bb182afbb55be0490f881ba303eb035e827e469681b43405f92dc66", + "method": null, + "signature": null, "index": [], "indexed": 0, "eventSignature": null @@ -3414,80 +3775,75 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } ], - "name": "removeCapper", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "__signatureData": { - "method": "removeCapper(address)", - "signature": "3f4a648494db3f817b03288a052db3081855f0c0a5349acd48fb788580dd1b07", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": false, - "inputs": [], - "name": "renounceCapper", + "name": "addCapper", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "renounceCapper()", - "signature": "5d5576f8400b403d0ee565e683a6f8b36fd3f83fe3f63002501be35ef65d126e", + "method": "addCapper(address)", + "signature": "8dfbcf360614e363adad8a299c5cc64ba91d68047abea24a8c55b6d8041b7d9b", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { + "internalType": "address", "name": "beneficiary", "type": "address" - }, + } + ], + "name": "getCap", + "outputs": [ { - "name": "cap", + "internalType": "uint256", + "name": "", "type": "uint256" } ], - "name": "setCap", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "setCap(address,uint256)", - "signature": "80ad2cf3dae65fa5a64dfaf69597ced83d07cd5b358301e2770664a6258b7041", + "method": "getCap(address)", + "signature": "b3aefb754817c41c8ee0e0f6012d7248b329b04af3787e228a58bb0e3379f816", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "account", + "internalType": "address", + "name": "beneficiary", "type": "address" } ], - "name": "addCapper", - "outputs": [], + "name": "getContribution", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "addCapper(address)", - "signature": "8dfbcf360614e363adad8a299c5cc64ba91d68047abea24a8c55b6d8041b7d9b", + "method": "getContribution(address)", + "signature": "21eff7fc1631da8139bce6c02359fc3e44205c53bb3b122a22a25d0cc4b9f32a", "index": [], "indexed": 0, "eventSignature": null @@ -3497,23 +3853,25 @@ "constant": true, "inputs": [ { - "name": "beneficiary", + "internalType": "address", + "name": "account", "type": "address" } ], - "name": "getCap", + "name": "isCapper", "outputs": [ { + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "getCap(address)", - "signature": "b3aefb754817c41c8ee0e0f6012d7248b329b04af3787e228a58bb0e3379f816", + "method": "isCapper(address)", + "signature": "395645610bb182afbb55be0490f881ba303eb035e827e469681b43405f92dc66", "index": [], "indexed": 0, "eventSignature": null @@ -3536,63 +3894,65 @@ } }, { - "constant": true, - "inputs": [], - "name": "finalRate", - "outputs": [ + "constant": false, + "inputs": [ { - "name": "", - "type": "uint256" + "internalType": "address", + "name": "account", + "type": "address" } ], + "name": "removeCapper", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "finalRate()", - "signature": "21106109c098c8e769d8e06608f6672d4d951216ad40155ba42beb5450014105", + "method": "removeCapper(address)", + "signature": "3f4a648494db3f817b03288a052db3081855f0c0a5349acd48fb788580dd1b07", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [], - "name": "initialRate", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], + "name": "renounceCapper", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "initialRate()", - "signature": "9e51051f24c46573a349a4619f1048aa4311678ef42975ceb003f2c51ff2a9df", + "method": "renounceCapper()", + "signature": "5d5576f8400b403d0ee565e683a6f8b36fd3f83fe3f63002501be35ef65d126e", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, - "inputs": [], - "name": "getCurrentRate", - "outputs": [ + "constant": false, + "inputs": [ { - "name": "", + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "internalType": "uint256", + "name": "cap", "type": "uint256" } ], + "name": "setCap", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "getCurrentRate()", - "signature": "f7fb07b07a166fffdf5845ab298725c70a943f62b3a7b2283aa6a749d3bc5b66", + "method": "setCap(address,uint256)", + "signature": "80ad2cf3dae65fa5a64dfaf69597ced83d07cd5b358301e2770664a6258b7041", "index": [], "indexed": 0, "eventSignature": null @@ -3601,26 +3961,32 @@ { "inputs": [ { + "internalType": "uint256", "name": "openingTime", "type": "uint256" }, { + "internalType": "uint256", "name": "closingTime", "type": "uint256" }, { + "internalType": "address payable", "name": "wallet", "type": "address" }, { + "internalType": "contract IERC20", "name": "token", "type": "address" }, { + "internalType": "uint256", "name": "initialRate", "type": "uint256" }, { + "internalType": "uint256", "name": "finalRate", "type": "uint256" } @@ -3637,22 +4003,44 @@ } }, { - "inputs": [ + "constant": true, + "inputs": [], + "name": "finalRate", + "outputs": [ { - "name": "initialRate", + "internalType": "uint256", + "name": "", "type": "uint256" - }, + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "finalRate()", + "signature": "21106109c098c8e769d8e06608f6672d4d951216ad40155ba42beb5450014105", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "getCurrentRate", + "outputs": [ { - "name": "finalRate", + "internalType": "uint256", + "name": "", "type": "uint256" } ], "payable": false, - "stateMutability": "nonpayable", - "type": "constructor", + "stateMutability": "view", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "getCurrentRate()", + "signature": "f7fb07b07a166fffdf5845ab298725c70a943f62b3a7b2283aa6a749d3bc5b66", "index": [], "indexed": 0, "eventSignature": null @@ -3661,19 +4049,44 @@ { "constant": true, "inputs": [], - "name": "getHubAddr", + "name": "initialRate", "outputs": [ { + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "getHubAddr()", - "signature": "74e861d6e907742ab3885440c07cfffd4d98f68c300dce0fd09fe61b6eb812c3", + "method": "initialRate()", + "signature": "9e51051f24c46573a349a4619f1048aa4311678ef42975ceb003f2c51ff2a9df", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "initialRate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "finalRate", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor", + "__signatureData": { + "method": null, + "signature": null, "index": [], "indexed": 0, "eventSignature": null @@ -3683,38 +4096,47 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "relay", "type": "address" }, { + "internalType": "address", "name": "from", "type": "address" }, { + "internalType": "bytes", "name": "encodedFunction", "type": "bytes" }, { + "internalType": "uint256", "name": "transactionFee", "type": "uint256" }, { + "internalType": "uint256", "name": "gasPrice", "type": "uint256" }, { + "internalType": "uint256", "name": "gasLimit", "type": "uint256" }, { + "internalType": "uint256", "name": "nonce", "type": "uint256" }, { + "internalType": "bytes", "name": "approvalData", "type": "bytes" }, { + "internalType": "uint256", "name": "maxPossibleCharge", "type": "uint256" } @@ -3722,10 +4144,12 @@ "name": "acceptRelayedCall", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" }, { + "internalType": "bytes", "name": "", "type": "bytes" } @@ -3742,26 +4166,22 @@ } }, { - "constant": false, - "inputs": [ - { - "name": "context", - "type": "bytes" - } - ], - "name": "preRelayedCall", + "constant": true, + "inputs": [], + "name": "getHubAddr", "outputs": [ { + "internalType": "address", "name": "", - "type": "bytes32" + "type": "address" } ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "preRelayedCall(bytes)", - "signature": "80274db7ae75e1ffa7ffdddd8a8d1cd4af90f5af220feaec1ead8c2bd7f63788", + "method": "getHubAddr()", + "signature": "74e861d6e907742ab3885440c07cfffd4d98f68c300dce0fd09fe61b6eb812c3", "index": [], "indexed": 0, "eventSignature": null @@ -3771,18 +4191,22 @@ "constant": false, "inputs": [ { + "internalType": "bytes", "name": "context", "type": "bytes" }, { + "internalType": "bool", "name": "success", "type": "bool" }, { + "internalType": "uint256", "name": "actualCharge", "type": "uint256" }, { + "internalType": "bytes32", "name": "preRetVal", "type": "bytes32" } @@ -3804,47 +4228,131 @@ "constant": false, "inputs": [ { - "name": "relayaddr", - "type": "address" - }, + "internalType": "bytes", + "name": "context", + "type": "bytes" + } + ], + "name": "preRelayedCall", + "outputs": [ { - "name": "unstakeDelay", - "type": "uint256" + "internalType": "bytes32", + "name": "", + "type": "bytes32" } ], - "name": "stake", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "type": "function", + "payable": false, + "stateMutability": "nonpayable", + "type": "function", "__signatureData": { - "method": "stake(address,uint256)", - "signature": "adc9772e9f3b2218b39abb39e4dd00e4a7f4ca0809c2c3fd73a7011defd8a83f", + "method": "preRelayedCall(bytes)", + "signature": "80274db7ae75e1ffa7ffdddd8a8d1cd4af90f5af220feaec1ead8c2bd7f63788", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "balanceOf(address)", + "signature": "70a08231b98ef4ca268c9cc3f6b4590e4bfec28280db06bb5d45e689f2a360be", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, "inputs": [ { + "internalType": "address", + "name": "relay", + "type": "address" + }, + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "bytes", + "name": "encodedFunction", + "type": "bytes" + }, + { + "internalType": "uint256", "name": "transactionFee", "type": "uint256" }, { - "name": "url", - "type": "string" + "internalType": "uint256", + "name": "gasPrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "gasLimit", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "signature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "approvalData", + "type": "bytes" + } + ], + "name": "canRelay", + "outputs": [ + { + "internalType": "uint256", + "name": "status", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "recipientContext", + "type": "bytes" } ], - "name": "registerRelay", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "registerRelay(uint256,string)", - "signature": "1166073a9ff87aa11d62b4f0dffac7fcaedb3ba9046d63dea3a2e32565763fe6", + "method": "canRelay(address,address,address,bytes,uint256,uint256,uint256,uint256,bytes,bytes)", + "signature": "2b601747511f3f4c3a522b4a4d8e69eb33b6504a2f228bddd28b773af5dcc5cb", "index": [], "indexed": 0, "eventSignature": null @@ -3854,39 +4362,47 @@ "constant": false, "inputs": [ { - "name": "relay", + "internalType": "address", + "name": "target", "type": "address" } ], - "name": "removeRelayByOwner", + "name": "depositFor", "outputs": [], - "payable": false, - "stateMutability": "nonpayable", + "payable": true, + "stateMutability": "payable", "type": "function", "__signatureData": { - "method": "removeRelayByOwner(address)", - "signature": "c3e712f26ec93100dd7291dcd6af6573a4a83757e448cb388d1e1a9c1b3eb947", + "method": "depositFor(address)", + "signature": "aa67c919e0857e147ffeead4bdc357425a4fdbad9f434ae46e0445b355dca983", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "relay", + "internalType": "address", + "name": "from", "type": "address" } ], - "name": "unstake", - "outputs": [], + "name": "getNonce", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "unstake(address)", - "signature": "f2888dbbb28494a57963b14340157c06ae31f99a08b1c349673e4a5ea3324f07", + "method": "getNonce(address)", + "signature": "2d0335aba15fb7c7be0e001e3b72649542ef9da34ad10a6b12ac499aca97bf03", "index": [], "indexed": 0, "eventSignature": null @@ -3896,6 +4412,7 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "relay", "type": "address" } @@ -3903,22 +4420,27 @@ "name": "getRelay", "outputs": [ { + "internalType": "uint256", "name": "totalStake", "type": "uint256" }, { + "internalType": "uint256", "name": "unstakeDelay", "type": "uint256" }, { + "internalType": "uint256", "name": "unstakeTime", "type": "uint256" }, { + "internalType": "address payable", "name": "owner", "type": "address" }, { + "internalType": "enum IRelayHub.RelayState", "name": "state", "type": "uint8" } @@ -3934,38 +4456,29 @@ "eventSignature": null } }, - { - "constant": false, - "inputs": [ - { - "name": "target", - "type": "address" - } - ], - "name": "depositFor", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "type": "function", - "__signatureData": { - "method": "depositFor(address)", - "signature": "aa67c919e0857e147ffeead4bdc357425a4fdbad9f434ae46e0445b355dca983", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, { "constant": true, "inputs": [ { - "name": "target", - "type": "address" + "internalType": "uint256", + "name": "relayedCallStipend", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "gasPrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "transactionFee", + "type": "uint256" } ], - "name": "balanceOf", + "name": "maxPossibleCharge", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -3974,8 +4487,8 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "balanceOf(address)", - "signature": "70a08231b98ef4ca268c9cc3f6b4590e4bfec28280db06bb5d45e689f2a360be", + "method": "maxPossibleCharge(uint256,uint256,uint256)", + "signature": "a863f8f965ddbdeb0134bd2cedd241bc9d650a275a0aecf72024edde60dd96c1", "index": [], "indexed": 0, "eventSignature": null @@ -3985,88 +4498,88 @@ "constant": false, "inputs": [ { - "name": "amount", - "type": "uint256" + "internalType": "bytes", + "name": "unsignedTx", + "type": "bytes" }, { - "name": "dest", - "type": "address" + "internalType": "bytes", + "name": "signature", + "type": "bytes" } ], - "name": "withdraw", + "name": "penalizeIllegalTransaction", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "withdraw(uint256,address)", - "signature": "00f714ce93c4a188ecc0c802ca78036f638c1c4b3ee9b98f3ed75364b45f50b1", + "method": "penalizeIllegalTransaction(bytes,bytes)", + "signature": "390024325e037b6652cf6827845a7b6df9dd6ccbdc6e998ee910139d10377ba2", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "relay", - "type": "address" - }, - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "encodedFunction", + "internalType": "bytes", + "name": "unsignedTx1", "type": "bytes" }, { - "name": "transactionFee", - "type": "uint256" - }, - { - "name": "gasPrice", - "type": "uint256" - }, - { - "name": "gasLimit", - "type": "uint256" - }, - { - "name": "nonce", - "type": "uint256" + "internalType": "bytes", + "name": "signature1", + "type": "bytes" }, { - "name": "signature", + "internalType": "bytes", + "name": "unsignedTx2", "type": "bytes" }, { - "name": "approvalData", + "internalType": "bytes", + "name": "signature2", "type": "bytes" } ], - "name": "canRelay", - "outputs": [ + "name": "penalizeRepeatedNonce", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "penalizeRepeatedNonce(bytes,bytes,bytes,bytes)", + "signature": "a8cd9572006f07cb5371172782eba6c734760b27217cb5a543459ccdc3f0e907", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ { - "name": "status", + "internalType": "uint256", + "name": "transactionFee", "type": "uint256" }, { - "name": "recipientContext", - "type": "bytes" + "internalType": "string", + "name": "url", + "type": "string" } ], + "name": "registerRelay", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "canRelay(address,address,address,bytes,uint256,uint256,uint256,uint256,bytes,bytes)", - "signature": "2b601747511f3f4c3a522b4a4d8e69eb33b6504a2f228bddd28b773af5dcc5cb", + "method": "registerRelay(uint256,string)", + "signature": "1166073a9ff87aa11d62b4f0dffac7fcaedb3ba9046d63dea3a2e32565763fe6", "index": [], "indexed": 0, "eventSignature": null @@ -4076,38 +4589,47 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "from", "type": "address" }, { + "internalType": "address", "name": "to", "type": "address" }, { + "internalType": "bytes", "name": "encodedFunction", "type": "bytes" }, { + "internalType": "uint256", "name": "transactionFee", "type": "uint256" }, { + "internalType": "uint256", "name": "gasPrice", "type": "uint256" }, { + "internalType": "uint256", "name": "gasLimit", "type": "uint256" }, { + "internalType": "uint256", "name": "nonce", "type": "uint256" }, { + "internalType": "bytes", "name": "signature", "type": "bytes" }, { + "internalType": "bytes", "name": "approvalData", "type": "bytes" } @@ -4126,26 +4648,22 @@ } }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "relayedCallStipend", - "type": "uint256" - } - ], - "name": "requiredGas", - "outputs": [ - { - "name": "", - "type": "uint256" + "internalType": "address", + "name": "relay", + "type": "address" } ], - "payable": false, - "stateMutability": "view", + "name": "removeRelayByOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "requiredGas(uint256)", - "signature": "6a7d84a4e461b2d2841297ef63924952dc8887d4b4ea4066a018345a725a8ab8", + "method": "removeRelayByOwner(address)", + "signature": "c3e712f26ec93100dd7291dcd6af6573a4a83757e448cb388d1e1a9c1b3eb947", "index": [], "indexed": 0, "eventSignature": null @@ -4155,21 +4673,15 @@ "constant": true, "inputs": [ { + "internalType": "uint256", "name": "relayedCallStipend", "type": "uint256" - }, - { - "name": "gasPrice", - "type": "uint256" - }, - { - "name": "transactionFee", - "type": "uint256" } ], - "name": "maxPossibleCharge", + "name": "requiredGas", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -4178,8 +4690,8 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "maxPossibleCharge(uint256,uint256,uint256)", - "signature": "a863f8f965ddbdeb0134bd2cedd241bc9d650a275a0aecf72024edde60dd96c1", + "method": "requiredGas(uint256)", + "signature": "6a7d84a4e461b2d2841297ef63924952dc8887d4b4ea4066a018345a725a8ab8", "index": [], "indexed": 0, "eventSignature": null @@ -4189,30 +4701,24 @@ "constant": false, "inputs": [ { - "name": "unsignedTx1", - "type": "bytes" - }, - { - "name": "signature1", - "type": "bytes" - }, - { - "name": "unsignedTx2", - "type": "bytes" + "internalType": "address", + "name": "relayaddr", + "type": "address" }, { - "name": "signature2", - "type": "bytes" + "internalType": "uint256", + "name": "unstakeDelay", + "type": "uint256" } ], - "name": "penalizeRepeatedNonce", + "name": "stake", "outputs": [], - "payable": false, - "stateMutability": "nonpayable", + "payable": true, + "stateMutability": "payable", "type": "function", "__signatureData": { - "method": "penalizeRepeatedNonce(bytes,bytes,bytes,bytes)", - "signature": "a8cd9572006f07cb5371172782eba6c734760b27217cb5a543459ccdc3f0e907", + "method": "stake(address,uint256)", + "signature": "adc9772e9f3b2218b39abb39e4dd00e4a7f4ca0809c2c3fd73a7011defd8a83f", "index": [], "indexed": 0, "eventSignature": null @@ -4222,48 +4728,46 @@ "constant": false, "inputs": [ { - "name": "unsignedTx", - "type": "bytes" - }, - { - "name": "signature", - "type": "bytes" + "internalType": "address", + "name": "relay", + "type": "address" } ], - "name": "penalizeIllegalTransaction", + "name": "unstake", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "penalizeIllegalTransaction(bytes,bytes)", - "signature": "390024325e037b6652cf6827845a7b6df9dd6ccbdc6e998ee910139d10377ba2", + "method": "unstake(address)", + "signature": "f2888dbbb28494a57963b14340157c06ae31f99a08b1c349673e4a5ea3324f07", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "from", - "type": "address" - } - ], - "name": "getNonce", - "outputs": [ - { - "name": "", + "internalType": "uint256", + "name": "amount", "type": "uint256" + }, + { + "internalType": "address payable", + "name": "dest", + "type": "address" } ], + "name": "withdraw", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "getNonce(address)", - "signature": "2d0335aba15fb7c7be0e001e3b72649542ef9da34ad10a6b12ac499aca97bf03", + "method": "withdraw(uint256,address)", + "signature": "00f714ce93c4a188ecc0c802ca78036f638c1c4b3ee9b98f3ed75364b45f50b1", "index": [], "indexed": 0, "eventSignature": null @@ -4273,26 +4777,32 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "operator", "type": "address" }, { + "internalType": "address", "name": "from", "type": "address" }, { + "internalType": "address", "name": "to", "type": "address" }, { + "internalType": "uint256", "name": "amount", "type": "uint256" }, { + "internalType": "bytes", "name": "userData", "type": "bytes" }, { + "internalType": "bytes", "name": "operatorData", "type": "bytes" } @@ -4314,26 +4824,32 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "operator", "type": "address" }, { + "internalType": "address", "name": "from", "type": "address" }, { + "internalType": "address", "name": "to", "type": "address" }, { + "internalType": "uint256", "name": "amount", "type": "uint256" }, { + "internalType": "bytes", "name": "userData", "type": "bytes" }, { + "internalType": "bytes", "name": "operatorData", "type": "bytes" } @@ -4352,21 +4868,22 @@ } }, { - "constant": true, - "inputs": [], - "name": "granularity", - "outputs": [ + "constant": false, + "inputs": [ { - "name": "", - "type": "uint256" + "internalType": "address", + "name": "operator", + "type": "address" } ], + "name": "authorizeOperator", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "granularity()", - "signature": "556f0dc7c27917e5fbcf81d768e3f14e5e91388a9bbf5489fc807a3b25713a85", + "method": "authorizeOperator(address)", + "signature": "959b8c3fa5f1ac78a7061180563d67096686864ae5178e2a1c5dc4cafe65647f", "index": [], "indexed": 0, "eventSignature": null @@ -4376,6 +4893,7 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "owner", "type": "address" } @@ -4383,6 +4901,7 @@ "name": "balanceOf", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -4402,51 +4921,68 @@ "constant": false, "inputs": [ { - "name": "recipient", - "type": "address" - }, - { + "internalType": "uint256", "name": "amount", "type": "uint256" }, { + "internalType": "bytes", "name": "data", "type": "bytes" } ], - "name": "send", + "name": "burn", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "send(address,uint256,bytes)", - "signature": "9bd9bbc68c9d2d57236e56ab2cc196bd1614295e6e32ba6eba9004e8c27143b6", + "method": "burn(uint256,bytes)", + "signature": "fe9d9303e79d04e189cef961eb7b3ed8271cbefc87b5bc7f1e67dff4a0c724a1", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, - "inputs": [ + "constant": true, + "inputs": [], + "name": "defaultOperators", + "outputs": [ { - "name": "amount", - "type": "uint256" - }, + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "defaultOperators()", + "signature": "06e485385cf29deb9a8a1b7063b1318c309eaf898f126cfc9db7a541554a38e8", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "granularity", + "outputs": [ { - "name": "data", - "type": "bytes" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "burn", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "burn(uint256,bytes)", - "signature": "fe9d9303e79d04e189cef961eb7b3ed8271cbefc87b5bc7f1e67dff4a0c724a1", + "method": "granularity()", + "signature": "556f0dc7c27917e5fbcf81d768e3f14e5e91388a9bbf5489fc807a3b25713a85", "index": [], "indexed": 0, "eventSignature": null @@ -4456,10 +4992,12 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "operator", "type": "address" }, { + "internalType": "address", "name": "tokenHolder", "type": "address" } @@ -4467,6 +5005,7 @@ "name": "isOperatorFor", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -4486,60 +5025,34 @@ "constant": false, "inputs": [ { - "name": "operator", + "internalType": "address", + "name": "account", "type": "address" - } - ], - "name": "authorizeOperator", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "__signatureData": { - "method": "authorizeOperator(address)", - "signature": "959b8c3fa5f1ac78a7061180563d67096686864ae5178e2a1c5dc4cafe65647f", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": false, - "inputs": [ + }, { - "name": "operator", - "type": "address" + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "operatorData", + "type": "bytes" } ], - "name": "revokeOperator", + "name": "operatorBurn", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "revokeOperator(address)", - "signature": "fad8b32a12ce11ea2887e7e753dadc4570ca76ac4dc839eae40921f5ca040305", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": true, - "inputs": [], - "name": "defaultOperators", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "__signatureData": { - "method": "defaultOperators()", - "signature": "06e485385cf29deb9a8a1b7063b1318c309eaf898f126cfc9db7a541554a38e8", + "method": "operatorBurn(address,uint256,bytes,bytes)", + "signature": "fc673c4f8d4aaaabaea06e9dd5779b22b049a95ce54fdeba7078d6693e645c46", "index": [], "indexed": 0, "eventSignature": null @@ -4549,22 +5062,27 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "sender", "type": "address" }, { + "internalType": "address", "name": "recipient", "type": "address" }, { + "internalType": "uint256", "name": "amount", "type": "uint256" }, { + "internalType": "bytes", "name": "data", "type": "bytes" }, { + "internalType": "bytes", "name": "operatorData", "type": "bytes" } @@ -4586,30 +5104,51 @@ "constant": false, "inputs": [ { - "name": "account", + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "revokeOperator", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "revokeOperator(address)", + "signature": "fad8b32a12ce11ea2887e7e753dadc4570ca76ac4dc839eae40921f5ca040305", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "recipient", "type": "address" }, { + "internalType": "uint256", "name": "amount", "type": "uint256" }, { + "internalType": "bytes", "name": "data", "type": "bytes" - }, - { - "name": "operatorData", - "type": "bytes" } ], - "name": "operatorBurn", + "name": "send", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "operatorBurn(address,uint256,bytes,bytes)", - "signature": "fc673c4f8d4aaaabaea06e9dd5779b22b049a95ce54fdeba7078d6693e645c46", + "method": "send(address,uint256,bytes)", + "signature": "9bd9bbc68c9d2d57236e56ab2cc196bd1614295e6e32ba6eba9004e8c27143b6", "index": [], "indexed": 0, "eventSignature": null @@ -4619,18 +5158,22 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "operator", "type": "address" }, { + "internalType": "address", "name": "from", "type": "address" }, { + "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { + "internalType": "bytes", "name": "data", "type": "bytes" } @@ -4638,6 +5181,7 @@ "name": "onERC721Received", "outputs": [ { + "internalType": "bytes4", "name": "", "type": "bytes4" } @@ -4654,109 +5198,116 @@ } }, { - "constant": true, + "constant": false, "inputs": [ { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], - "name": "getApproved", - "outputs": [ - { - "name": "operator", - "type": "address" - } - ], + "name": "approve", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "getApproved(uint256)", - "signature": "081812fc55e34fdc7cf5d8b5cf4e3621fa6423fde952ec6ab24afdc0d85c0b2e", + "method": "approve(address,uint256)", + "signature": "095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "to", + "internalType": "address", + "name": "owner", "type": "address" - }, + } + ], + "name": "balanceOf", + "outputs": [ { - "name": "tokenId", + "internalType": "uint256", + "name": "balance", "type": "uint256" } ], - "name": "approve", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "approve(address,uint256)", - "signature": "095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", + "method": "balanceOf(address)", + "signature": "70a08231b98ef4ca268c9cc3f6b4590e4bfec28280db06bb5d45e689f2a360be", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { + "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], - "name": "transferFrom", - "outputs": [], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "transferFrom(address,address,uint256)", - "signature": "23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b", + "method": "getApproved(uint256)", + "signature": "081812fc55e34fdc7cf5d8b5cf4e3621fa6423fde952ec6ab24afdc0d85c0b2e", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "from", + "internalType": "address", + "name": "owner", "type": "address" }, { - "name": "to", + "internalType": "address", + "name": "operator", "type": "address" - }, + } + ], + "name": "isApprovedForAll", + "outputs": [ { - "name": "tokenId", - "type": "uint256" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "safeTransferFrom", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "safeTransferFrom(address,address,uint256)", - "signature": "42842e0eb38857a7775b4e7364b2775df7325074d088e7fb39590cd6281184ed", + "method": "isApprovedForAll(address,address)", + "signature": "e985e9c5c6636c6879256001057b28ccac7718ef0ac56553ff9b926452cab8a3", "index": [], "indexed": 0, "eventSignature": null @@ -4766,6 +5317,7 @@ "constant": true, "inputs": [ { + "internalType": "uint256", "name": "tokenId", "type": "uint256" } @@ -4773,6 +5325,7 @@ "name": "ownerOf", "outputs": [ { + "internalType": "address", "name": "owner", "type": "address" } @@ -4789,51 +5342,32 @@ } }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "owner", + "internalType": "address", + "name": "from", "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "balance", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "__signatureData": { - "method": "balanceOf(address)", - "signature": "70a08231b98ef4ca268c9cc3f6b4590e4bfec28280db06bb5d45e689f2a360be", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": false, - "inputs": [ + }, { - "name": "operator", + "internalType": "address", + "name": "to", "type": "address" }, { - "name": "_approved", - "type": "bool" + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" } ], - "name": "setApprovalForAll", + "name": "safeTransferFrom", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "setApprovalForAll(address,bool)", - "signature": "a22cb4651ab9570f89bb516380c40ce76762284fb1f21337ceaf6adab99e7d4a", + "method": "safeTransferFrom(address,address,uint256)", + "signature": "42842e0eb38857a7775b4e7364b2775df7325074d088e7fb39590cd6281184ed", "index": [], "indexed": 0, "eventSignature": null @@ -4843,18 +5377,22 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "from", "type": "address" }, { + "internalType": "address", "name": "to", "type": "address" }, { + "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { + "internalType": "bytes", "name": "data", "type": "bytes" } @@ -4873,30 +5411,27 @@ } }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "owner", - "type": "address" - }, - { + "internalType": "address", "name": "operator", "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ + }, { - "name": "", + "internalType": "bool", + "name": "_approved", "type": "bool" } ], + "name": "setApprovalForAll", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "isApprovedForAll(address,address)", - "signature": "e985e9c5c6636c6879256001057b28ccac7718ef0ac56553ff9b926452cab8a3", + "method": "setApprovalForAll(address,bool)", + "signature": "a22cb4651ab9570f89bb516380c40ce76762284fb1f21337ceaf6adab99e7d4a", "index": [], "indexed": 0, "eventSignature": null @@ -4906,6 +5441,7 @@ "constant": true, "inputs": [ { + "internalType": "uint256", "name": "tokenId", "type": "uint256" } @@ -4913,6 +5449,7 @@ "name": "tokenURI", "outputs": [ { + "internalType": "string", "name": "", "type": "string" } @@ -4929,21 +5466,51 @@ } }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "owner", + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", "type": "address" }, { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "transferFrom(address,address,uint256)", + "signature": "23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", "name": "index", "type": "uint256" } ], - "name": "tokenOfOwnerByIndex", + "name": "tokenByIndex", "outputs": [ { - "name": "tokenId", + "internalType": "uint256", + "name": "", "type": "uint256" } ], @@ -4951,8 +5518,8 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "tokenOfOwnerByIndex(address,uint256)", - "signature": "2f745c59a57ba1667616e5a9707eeaa36ec97c283ee24190b75d9c8d14bcb215", + "method": "tokenByIndex(uint256)", + "signature": "4f6ccce7c41aed90ec1f1887c4a821594c0f73758d8941d0ccaa2cde813b7298", "index": [], "indexed": 0, "eventSignature": null @@ -4962,14 +5529,21 @@ "constant": true, "inputs": [ { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", "name": "index", "type": "uint256" } ], - "name": "tokenByIndex", + "name": "tokenOfOwnerByIndex", "outputs": [ { - "name": "", + "internalType": "uint256", + "name": "tokenId", "type": "uint256" } ], @@ -4977,33 +5551,41 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "tokenByIndex(uint256)", - "signature": "4f6ccce7c41aed90ec1f1887c4a821594c0f73758d8941d0ccaa2cde813b7298", + "method": "tokenOfOwnerByIndex(address,uint256)", + "signature": "2f745c59a57ba1667616e5a9707eeaa36ec97c283ee24190b75d9c8d14bcb215", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" }, { - "name": "newManager", + "internalType": "bytes32", + "name": "interfaceHash", + "type": "bytes32" + } + ], + "name": "getInterfaceImplementer", + "outputs": [ + { + "internalType": "address", + "name": "", "type": "address" } ], - "name": "setManager", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "setManager(address,address)", - "signature": "5df8122f7e200b7f3718bd782c13bd84af63ca1e905e2a214189fde9d437916b", + "method": "getInterfaceImplementer(address,bytes32)", + "signature": "aabbb8ca5077ad77ee74d09abca69060954dc1e7e935c6125dbfbdac2f7cb4d5", "index": [], "indexed": 0, "eventSignature": null @@ -5013,6 +5595,7 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } @@ -5020,6 +5603,7 @@ "name": "getManager", "outputs": [ { + "internalType": "address", "name": "", "type": "address" } @@ -5036,29 +5620,33 @@ } }, { - "constant": false, + "constant": true, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" }, { - "name": "interfaceHash", - "type": "bytes32" - }, + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "implementsERC165Interface", + "outputs": [ { - "name": "implementer", - "type": "address" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "setInterfaceImplementer", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "setInterfaceImplementer(address,bytes32,address)", - "signature": "29965a1dd17c60032c757c6eac6dd148280625a6723b0f37a399c515773e824b", + "method": "implementsERC165Interface(address,bytes4)", + "signature": "f712f3e885feefd4d819ffb61e08e67f0090bc5a5fe8b38272e3134e9d255486", "index": [], "indexed": 0, "eventSignature": null @@ -5068,27 +5656,30 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" }, { - "name": "interfaceHash", - "type": "bytes32" + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" } ], - "name": "getInterfaceImplementer", + "name": "implementsERC165InterfaceNoCache", "outputs": [ { + "internalType": "bool", "name": "", - "type": "address" + "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "getInterfaceImplementer(address,bytes32)", - "signature": "aabbb8ca5077ad77ee74d09abca69060954dc1e7e935c6125dbfbdac2f7cb4d5", + "method": "implementsERC165InterfaceNoCache(address,bytes4)", + "signature": "b705676510cec9438fe759af9cd9a319054c29d249f48050897ff539683f9795", "index": [], "indexed": 0, "eventSignature": null @@ -5098,6 +5689,7 @@ "constant": true, "inputs": [ { + "internalType": "string", "name": "interfaceName", "type": "string" } @@ -5105,6 +5697,7 @@ "name": "interfaceHash", "outputs": [ { + "internalType": "bytes32", "name": "", "type": "bytes32" } @@ -5124,82 +5717,83 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" }, { - "name": "interfaceId", - "type": "bytes4" + "internalType": "bytes32", + "name": "interfaceHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "implementer", + "type": "address" } ], - "name": "updateERC165Cache", + "name": "setInterfaceImplementer", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "updateERC165Cache(address,bytes4)", - "signature": "a41e7d51c5b4eeba8079bc0f66285a2953e8d97cae9e56174001e47da6a65b9c", + "method": "setInterfaceImplementer(address,bytes32,address)", + "signature": "29965a1dd17c60032c757c6eac6dd148280625a6723b0f37a399c515773e824b", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" }, { - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "implementsERC165Interface", - "outputs": [ - { - "name": "", - "type": "bool" + "internalType": "address", + "name": "newManager", + "type": "address" } ], + "name": "setManager", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "implementsERC165Interface(address,bytes4)", - "signature": "f712f3e885feefd4d819ffb61e08e67f0090bc5a5fe8b38272e3134e9d255486", + "method": "setManager(address,address)", + "signature": "5df8122f7e200b7f3718bd782c13bd84af63ca1e905e2a214189fde9d437916b", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" }, { + "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], - "name": "implementsERC165InterfaceNoCache", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], + "name": "updateERC165Cache", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "implementsERC165InterfaceNoCache(address,bytes4)", - "signature": "b705676510cec9438fe759af9cd9a319054c29d249f48050897ff539683f9795", + "method": "updateERC165Cache(address,bytes4)", + "signature": "a41e7d51c5b4eeba8079bc0f66285a2953e8d97cae9e56174001e47da6a65b9c", "index": [], "indexed": 0, "eventSignature": null @@ -5209,10 +5803,12 @@ "constant": true, "inputs": [ { + "internalType": "bytes32", "name": "interfaceHash", "type": "bytes32" }, { + "internalType": "address", "name": "account", "type": "address" } @@ -5220,6 +5816,7 @@ "name": "canImplementInterfaceForAddress", "outputs": [ { + "internalType": "bytes32", "name": "", "type": "bytes32" } @@ -5235,42 +5832,70 @@ "eventSignature": null } }, + { + "inputs": [ + { + "internalType": "address", + "name": "trustedSigner", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor", + "__signatureData": { + "method": null, + "signature": null, + "index": [], + "indexed": 0, + "eventSignature": null + } + }, { "constant": true, "inputs": [ { + "internalType": "address", "name": "relay", "type": "address" }, { + "internalType": "address", "name": "from", "type": "address" }, { + "internalType": "bytes", "name": "encodedFunction", "type": "bytes" }, { + "internalType": "uint256", "name": "transactionFee", "type": "uint256" }, { + "internalType": "uint256", "name": "gasPrice", "type": "uint256" }, { + "internalType": "uint256", "name": "gasLimit", "type": "uint256" }, { + "internalType": "uint256", "name": "nonce", "type": "uint256" }, { + "internalType": "bytes", "name": "approvalData", "type": "bytes" }, { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -5278,10 +5903,12 @@ "name": "acceptRelayedCall", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" }, { + "internalType": "bytes", "name": "", "type": "bytes" } @@ -5297,12 +5924,29 @@ "eventSignature": null } }, + { + "constant": false, + "inputs": [], + "name": "mockFunction", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "mockFunction()", + "signature": "3e6fec04891cbf2adc4929f005c945b1df36c1cc70a0dc8cc4a2d30cd9526418", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, { "constant": true, "inputs": [], "name": "relayHubVersion", "outputs": [ { + "internalType": "string", "name": "", "type": "string" } @@ -5319,34 +5963,73 @@ } }, { + "constant": true, "inputs": [ { - "name": "trustedSigner", + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", "type": "address" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "acceptRelayedCall", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" } ], "payable": false, - "stateMutability": "nonpayable", - "type": "constructor", - "__signatureData": { - "method": null, - "signature": null, - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": false, - "inputs": [], - "name": "mockFunction", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "mockFunction()", - "signature": "3e6fec04891cbf2adc4929f005c945b1df36c1cc70a0dc8cc4a2d30cd9526418", + "method": "acceptRelayedCall(address,address,bytes,uint256,uint256,uint256,uint256,bytes,uint256)", + "signature": "83947ea009abe4215784fc013af935411a558f6cd2dcdea5f18d5c7c5b70d409", "index": [], "indexed": 0, "eventSignature": null @@ -5356,10 +6039,12 @@ "constant": false, "inputs": [ { + "internalType": "uint256", "name": "integerValue", "type": "uint256" }, { + "internalType": "string", "name": "stringValue", "type": "string" } @@ -5397,105 +6082,70 @@ "constant": false, "inputs": [ { - "name": "amount", - "type": "uint256" - }, - { - "name": "payee", + "internalType": "address", + "name": "newRelayHub", "type": "address" } ], - "name": "withdrawDeposits", + "name": "upgradeRelayHub", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "withdrawDeposits(uint256,address)", - "signature": "c2db1abe7daab30b890763961009183af86eaa71fa3c52bb95c0eb7fcb5fa447", + "method": "upgradeRelayHub(address)", + "signature": "9e30a590cf55a2684fb69e37b38b95cd1633e385ab5bf0e2a3e20ebf459a435f", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "", - "type": "address" - }, - { - "name": "", - "type": "address" - }, - { - "name": "", - "type": "bytes" - }, - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "bytes" - }, - { - "name": "", - "type": "uint256" - } - ], - "name": "acceptRelayedCall", - "outputs": [ - { - "name": "", + "internalType": "uint256", + "name": "amount", "type": "uint256" }, { - "name": "", - "type": "bytes" + "internalType": "address payable", + "name": "payee", + "type": "address" } ], + "name": "withdrawDeposits", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "acceptRelayedCall(address,address,bytes,uint256,uint256,uint256,uint256,bytes,uint256)", - "signature": "83947ea009abe4215784fc013af935411a558f6cd2dcdea5f18d5c7c5b70d409", + "method": "withdrawDeposits(uint256,address)", + "signature": "c2db1abe7daab30b890763961009183af86eaa71fa3c52bb95c0eb7fcb5fa447", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, "inputs": [ { - "name": "newRelayHub", - "type": "address" + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" } ], - "name": "upgradeRelayHub", - "outputs": [], "payable": false, "stateMutability": "nonpayable", - "type": "function", + "type": "constructor", "__signatureData": { - "method": "upgradeRelayHub(address)", - "signature": "9e30a590cf55a2684fb69e37b38b95cd1633e385ab5bf0e2a3e20ebf459a435f", + "method": null, + "signature": null, "index": [], "indexed": 0, "eventSignature": null @@ -5505,38 +6155,47 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "", "type": "address" }, { + "internalType": "address", "name": "from", "type": "address" }, { + "internalType": "bytes", "name": "", "type": "bytes" }, { + "internalType": "uint256", "name": "transactionFee", "type": "uint256" }, { + "internalType": "uint256", "name": "gasPrice", "type": "uint256" }, { + "internalType": "uint256", "name": "", "type": "uint256" }, { + "internalType": "uint256", "name": "", "type": "uint256" }, { + "internalType": "bytes", "name": "", "type": "bytes" }, { + "internalType": "uint256", "name": "maxPossibleCharge", "type": "uint256" } @@ -5544,10 +6203,12 @@ "name": "acceptRelayedCall", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" }, { + "internalType": "bytes", "name": "", "type": "bytes" } @@ -5563,32 +6224,11 @@ "eventSignature": null } }, - { - "inputs": [ - { - "name": "name", - "type": "string" - }, - { - "name": "symbol", - "type": "string" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor", - "__signatureData": { - "method": null, - "signature": null, - "index": [], - "indexed": 0, - "eventSignature": null - } - }, { "constant": false, "inputs": [ { + "internalType": "bool", "name": "acceptEther", "type": "bool" } @@ -5610,6 +6250,7 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "payee", "type": "address" } @@ -5631,102 +6272,119 @@ "constant": false, "inputs": [ { - "name": "account", + "internalType": "address", + "name": "value", "type": "address" } ], - "name": "senderFor", + "name": "add", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "senderFor(address)", - "signature": "d2de647410d4847f7c2b1c646e28e10e303c10f95d7ea6b94c082bb1f0e3ecb7", + "method": "add(address)", + "signature": "0a3b0a4f4c6e53dce3dbcad5614cb2ba3a0fa7326d03c5d64b4fa2d565492737", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "sender", + "internalType": "address", + "name": "value", "type": "address" } ], - "name": "registerSender", - "outputs": [], + "name": "contains", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "registerSender(address)", - "signature": "e1ecbd30d7fc280e866052e7dcf713aee64bd27db00680e3c2a450b3a12cdc9b", + "method": "contains(address)", + "signature": "5dbe47e8ca78eed3d66d96aca4f3e0a862618253931c531246f0c213ed4514f0", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, - "inputs": [ + "constant": true, + "inputs": [], + "name": "enumerate", + "outputs": [ { - "name": "account", - "type": "address" + "internalType": "address[]", + "name": "", + "type": "address[]" } ], - "name": "recipientFor", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "recipientFor(address)", - "signature": "e0eb21801a9f335a4e9352266bab2e6b992e028b46da9236c68c9f2542a7f511", + "method": "enumerate()", + "signature": "ff9f78b3d32de8be0e9bed68612f7fad3f116aa6e7cb3c7748d1c767bcd9106e", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "recipient", + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "get", + "outputs": [ + { + "internalType": "address", + "name": "", "type": "address" } ], - "name": "registerRecipient", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "registerRecipient(address)", - "signature": "a8badaa52238eb11dfd031f6bd091dc87027cccee31954f0c034484ab291848b", + "method": "get(uint256)", + "signature": "9507d39afbeea551419419942ed5557ba0354af969f9e49bd20406f7e288b0cb", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, - "inputs": [ + "constant": true, + "inputs": [], + "name": "length", + "outputs": [ { - "name": "shouldRevert", - "type": "bool" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "setShouldRevertSend", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "setShouldRevertSend(bool)", - "signature": "4e4ae5a5b23f28439d51fbfb428cbdda0d2cdff3b2e3e23d8d4220585c9de51f", + "method": "length()", + "signature": "1f7b6d32f0bcc43b847f7e5983c958ffeec06d939e79a1435064bb9c306d2f49", "index": [], "indexed": 0, "eventSignature": null @@ -5736,18 +6394,19 @@ "constant": false, "inputs": [ { - "name": "shouldRevert", - "type": "bool" + "internalType": "address", + "name": "value", + "type": "address" } ], - "name": "setShouldRevertReceive", + "name": "remove", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "setShouldRevertReceive(bool)", - "signature": "c97e18fc4ab503e6d34324fbfc4776260fe140688edfe560aefd77d967d4c768", + "method": "remove(address)", + "signature": "29092d0ea9bcb5211809a4aaa5b0ebb94e6bef61bfe589f02c6c6fb1b193ffab", "index": [], "indexed": 0, "eventSignature": null @@ -5757,30 +6416,29 @@ "constant": false, "inputs": [ { + "internalType": "contract IERC777", "name": "token", "type": "address" }, { - "name": "to", - "type": "address" - }, - { + "internalType": "uint256", "name": "amount", "type": "uint256" }, { + "internalType": "bytes", "name": "data", "type": "bytes" } ], - "name": "send", + "name": "burn", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "send(address,address,uint256,bytes)", - "signature": "3836ef89341d578005df6b940fd026a6f4c1208b46c3d4068921eb9aa76bcaac", + "method": "burn(address,uint256,bytes)", + "signature": "44d171878174aac90272ce2c6f833b41e25ed3c943a482d65cb93dce656c95cf", "index": [], "indexed": 0, "eventSignature": null @@ -5790,26 +6448,19 @@ "constant": false, "inputs": [ { - "name": "token", + "internalType": "address", + "name": "account", "type": "address" - }, - { - "name": "amount", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" } ], - "name": "burn", + "name": "recipientFor", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "burn(address,uint256,bytes)", - "signature": "44d171878174aac90272ce2c6f833b41e25ed3c943a482d65cb93dce656c95cf", + "method": "recipientFor(address)", + "signature": "e0eb21801a9f335a4e9352266bab2e6b992e028b46da9236c68c9f2542a7f511", "index": [], "indexed": 0, "eventSignature": null @@ -5819,27 +6470,41 @@ "constant": false, "inputs": [ { - "name": "spender", + "internalType": "address", + "name": "recipient", "type": "address" - }, - { - "name": "value", - "type": "uint256" } ], - "name": "approve", - "outputs": [ + "name": "registerRecipient", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "registerRecipient(address)", + "signature": "a8badaa52238eb11dfd031f6bd091dc87027cccee31954f0c034484ab291848b", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ { - "name": "", - "type": "bool" + "internalType": "address", + "name": "sender", + "type": "address" } ], + "name": "registerSender", + "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "approve(address,uint256)", - "signature": "095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", + "method": "registerSender(address)", + "signature": "e1ecbd30d7fc280e866052e7dcf713aee64bd27db00680e3c2a450b3a12cdc9b", "index": [], "indexed": 0, "eventSignature": null @@ -5849,108 +6514,100 @@ "constant": false, "inputs": [ { - "name": "holder", + "internalType": "contract IERC777", + "name": "token", "type": "address" }, { - "name": "recipient", + "internalType": "address", + "name": "to", "type": "address" }, { + "internalType": "uint256", "name": "amount", "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ + }, { - "name": "", - "type": "bool" + "internalType": "bytes", + "name": "data", + "type": "bytes" } ], + "name": "send", + "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "transferFrom(address,address,uint256)", - "signature": "23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b", + "method": "send(address,address,uint256,bytes)", + "signature": "3836ef89341d578005df6b940fd026a6f4c1208b46c3d4068921eb9aa76bcaac", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, - "inputs": [], - "name": "decimals", - "outputs": [ + "constant": false, + "inputs": [ { - "name": "", - "type": "uint8" + "internalType": "address", + "name": "account", + "type": "address" } ], + "name": "senderFor", + "outputs": [], "payable": false, - "stateMutability": "pure", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "decimals()", - "signature": "313ce567add4d438edf58b94ff345d7d38c45b17dfc0f947988d7819dca364f9", + "method": "senderFor(address)", + "signature": "d2de647410d4847f7c2b1c646e28e10e303c10f95d7ea6b94c082bb1f0e3ecb7", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "tokenHolder", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" + "internalType": "bool", + "name": "shouldRevert", + "type": "bool" } ], + "name": "setShouldRevertReceive", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "balanceOf(address)", - "signature": "70a08231b98ef4ca268c9cc3f6b4590e4bfec28280db06bb5d45e689f2a360be", + "method": "setShouldRevertReceive(bool)", + "signature": "c97e18fc4ab503e6d34324fbfc4776260fe140688edfe560aefd77d967d4c768", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "holder", - "type": "address" - }, - { - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "", - "type": "uint256" + "internalType": "bool", + "name": "shouldRevert", + "type": "bool" } ], + "name": "setShouldRevertSend", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "allowance(address,address)", - "signature": "dd62ed3e90e97b3d417db9c0c7522647811bafca5afc6694f143588d255fdfb4", + "method": "setShouldRevertSend(bool)", + "signature": "4e4ae5a5b23f28439d51fbfb428cbdda0d2cdff3b2e3e23d8d4220585c9de51f", "index": [], "indexed": 0, "eventSignature": null @@ -5959,22 +6616,27 @@ { "inputs": [ { + "internalType": "address", "name": "initialHolder", "type": "address" }, { + "internalType": "uint256", "name": "initialBalance", "type": "uint256" }, { + "internalType": "string", "name": "name", "type": "string" }, { + "internalType": "string", "name": "symbol", "type": "string" }, { + "internalType": "address[]", "name": "defaultOperators", "type": "address[]" } @@ -5991,85 +6653,98 @@ } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "operator", + "internalType": "address", + "name": "holder", "type": "address" }, { - "name": "to", + "internalType": "address", + "name": "spender", "type": "address" - }, + } + ], + "name": "allowance", + "outputs": [ { - "name": "amount", + "internalType": "uint256", + "name": "", "type": "uint256" - }, - { - "name": "userData", - "type": "bytes" - }, - { - "name": "operatorData", - "type": "bytes" } ], - "name": "mintInternal", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "mintInternal(address,address,uint256,bytes,bytes)", - "signature": "502f2b8bf932c1941842477fc372bca4834ddc436a253e93faba2990bc29a24b", + "method": "allowance(address,address)", + "signature": "dd62ed3e90e97b3d417db9c0c7522647811bafca5afc6694f143588d255fdfb4", "index": [], "indexed": 0, "eventSignature": null } }, { + "constant": false, "inputs": [ { - "name": "name", - "type": "string" - }, - { - "name": "symbol", - "type": "string" + "internalType": "address", + "name": "spender", + "type": "address" }, { - "name": "defaultOperators", - "type": "address[]" - } + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } ], "payable": false, "stateMutability": "nonpayable", - "type": "constructor", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "approve(address,uint256)", + "signature": "095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", "index": [], "indexed": 0, "eventSignature": null } }, { + "constant": false, "inputs": [ { - "name": "retval", - "type": "bytes4" + "internalType": "address", + "name": "holder", + "type": "address" }, { - "name": "reverts", - "type": "bool" + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" } ], + "name": "approveInternal", + "outputs": [], "payable": false, "stateMutability": "nonpayable", - "type": "constructor", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "approveInternal(address,address,uint256)", + "signature": "56189cb4bb0039044cf7457b35bad3a3c904d529b71d57f6f1feb2e19e3f5de8", "index": [], "indexed": 0, "eventSignature": null @@ -6079,23 +6754,25 @@ "constant": true, "inputs": [ { - "name": "tokenId", - "type": "uint256" + "internalType": "address", + "name": "tokenHolder", + "type": "address" } ], - "name": "getApproved", + "name": "balanceOf", "outputs": [ { + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "getApproved(uint256)", - "signature": "081812fc55e34fdc7cf5d8b5cf4e3621fa6423fde952ec6ab24afdc0d85c0b2e", + "method": "balanceOf(address)", + "signature": "70a08231b98ef4ca268c9cc3f6b4590e4bfec28280db06bb5d45e689f2a360be", "index": [], "indexed": 0, "eventSignature": null @@ -6103,25 +6780,21 @@ }, { "constant": true, - "inputs": [ - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", + "inputs": [], + "name": "decimals", "outputs": [ { + "internalType": "uint8", "name": "", - "type": "address" + "type": "uint8" } ], "payable": false, - "stateMutability": "view", + "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "ownerOf(uint256)", - "signature": "6352211e6566aa027e75ac9dbf2423197fbd9b82b9d981a3ab367d355866aa1c", + "method": "decimals()", + "signature": "313ce567add4d438edf58b94ff345d7d38c45b17dfc0f947988d7819dca364f9", "index": [], "indexed": 0, "eventSignature": null @@ -6131,22 +6804,39 @@ "constant": false, "inputs": [ { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", "name": "to", "type": "address" }, { - "name": "approved", - "type": "bool" + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "userData", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "operatorData", + "type": "bytes" } ], - "name": "setApprovalForAll", + "name": "mintInternal", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "setApprovalForAll(address,bool)", - "signature": "a22cb4651ab9570f89bb516380c40ce76762284fb1f21337ceaf6adab99e7d4a", + "method": "mintInternal(address,address,uint256,bytes,bytes)", + "signature": "502f2b8bf932c1941842477fc372bca4834ddc436a253e93faba2990bc29a24b", "index": [], "indexed": 0, "eventSignature": null @@ -6156,55 +6846,88 @@ "constant": false, "inputs": [ { - "name": "from", + "internalType": "address", + "name": "holder", "type": "address" }, { - "name": "to", + "internalType": "address", + "name": "recipient", "type": "address" }, { - "name": "tokenId", + "internalType": "uint256", + "name": "amount", "type": "uint256" - }, + } + ], + "name": "transferFrom", + "outputs": [ { - "name": "_data", - "type": "bytes" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "safeTransferFrom", - "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "safeTransferFrom(address,address,uint256,bytes)", - "signature": "b88d4fde60196325a28bb7f99a2582e0b46de55b18761e960c14ad7a32099465", + "method": "transferFrom(address,address,uint256)", + "signature": "23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, "inputs": [ { - "name": "to", - "type": "address" + "internalType": "string", + "name": "name", + "type": "string" }, { - "name": "tokenId", - "type": "uint256" + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "address[]", + "name": "defaultOperators", + "type": "address[]" } ], - "name": "mint", - "outputs": [], "payable": false, "stateMutability": "nonpayable", - "type": "function", + "type": "constructor", "__signatureData": { - "method": "mint(address,uint256)", - "signature": "40c10f19c047ae7dfa66d6312b683d2ea3dfbcb4159e96b967c5f4b0a86f2842", + "method": null, + "signature": null, + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "retval", + "type": "bytes4" + }, + { + "internalType": "bool", + "name": "reverts", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor", + "__signatureData": { + "method": null, + "signature": null, "index": [], "indexed": 0, "eventSignature": null @@ -6214,6 +6937,7 @@ "constant": false, "inputs": [ { + "internalType": "uint256", "name": "tokenId", "type": "uint256" } @@ -6235,6 +6959,7 @@ "constant": true, "inputs": [ { + "internalType": "uint256", "name": "tokenId", "type": "uint256" } @@ -6242,6 +6967,7 @@ "name": "exists", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -6258,54 +6984,28 @@ } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "to", - "type": "address" - }, - { + "internalType": "uint256", "name": "tokenId", "type": "uint256" - }, - { - "name": "_data", - "type": "bytes" } ], - "name": "safeMint", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "__signatureData": { - "method": "safeMint(address,uint256,bytes)", - "signature": "8832e6e3a1acdc3c7227cb5f382053393c98d26b7e85fded7d4a78732f9d7cdd", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": false, - "inputs": [ + "name": "getApproved", + "outputs": [ { - "name": "to", + "internalType": "address", + "name": "", "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" } ], - "name": "safeMint", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "safeMint(address,uint256)", - "signature": "a144819463c3ba7c3be1edebec61a649b050f2192ad1964059becd97eb86bb4f", + "method": "getApproved(uint256)", + "signature": "081812fc55e34fdc7cf5d8b5cf4e3621fa6423fde952ec6ab24afdc0d85c0b2e", "index": [], "indexed": 0, "eventSignature": null @@ -6315,22 +7015,24 @@ "constant": false, "inputs": [ { - "name": "owner", + "internalType": "address", + "name": "to", "type": "address" }, { + "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], - "name": "burn", + "name": "mint", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "burn(address,uint256)", - "signature": "9dc29fac0ba6d4fc521c69c2b0c636d612e3343bc39ed934429b8876b0d12cba", + "method": "mint(address,uint256)", + "signature": "40c10f19c047ae7dfa66d6312b683d2ea3dfbcb4159e96b967c5f4b0a86f2842", "index": [], "indexed": 0, "eventSignature": null @@ -6340,27 +7042,25 @@ "constant": true, "inputs": [ { - "name": "owner", - "type": "address" - }, - { - "name": "index", + "internalType": "uint256", + "name": "tokenId", "type": "uint256" } ], - "name": "tokenOfOwnerByIndex", + "name": "ownerOf", "outputs": [ { + "internalType": "address", "name": "", - "type": "uint256" + "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "tokenOfOwnerByIndex(address,uint256)", - "signature": "2f745c59a57ba1667616e5a9707eeaa36ec97c283ee24190b75d9c8d14bcb215", + "method": "ownerOf(uint256)", + "signature": "6352211e6566aa027e75ac9dbf2423197fbd9b82b9d981a3ab367d355866aa1c", "index": [], "indexed": 0, "eventSignature": null @@ -6370,27 +7070,34 @@ "constant": false, "inputs": [ { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", "name": "to", "type": "address" }, { + "internalType": "uint256", "name": "tokenId", "type": "uint256" - } - ], - "name": "mint", - "outputs": [ + }, { - "name": "", - "type": "bool" + "internalType": "bytes", + "name": "_data", + "type": "bytes" } ], + "name": "safeTransferFrom", + "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "mint(address,uint256)", - "signature": "40c10f19c047ae7dfa66d6312b683d2ea3dfbcb4159e96b967c5f4b0a86f2842", + "method": "safeTransferFrom(address,address,uint256,bytes)", + "signature": "b88d4fde60196325a28bb7f99a2582e0b46de55b18761e960c14ad7a32099465", "index": [], "indexed": 0, "eventSignature": null @@ -6400,31 +7107,24 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "to", "type": "address" }, { - "name": "tokenId", - "type": "uint256" - }, - { - "name": "tokenURI", - "type": "string" - } - ], - "name": "mintWithTokenURI", - "outputs": [ - { - "name": "", + "internalType": "bool", + "name": "approved", "type": "bool" } ], + "name": "setApprovalForAll", + "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "mintWithTokenURI(address,uint256,string)", - "signature": "50bb4e7f0f69c56956eebe056f6b491fb7b811bfdb78ec5149e57eaba528b40a", + "method": "setApprovalForAll(address,bool)", + "signature": "a22cb4651ab9570f89bb516380c40ce76762284fb1f21337ceaf6adab99e7d4a", "index": [], "indexed": 0, "eventSignature": null @@ -6434,31 +7134,24 @@ "constant": false, "inputs": [ { - "name": "to", + "internalType": "address", + "name": "owner", "type": "address" }, { + "internalType": "uint256", "name": "tokenId", "type": "uint256" - }, - { - "name": "_data", - "type": "bytes" - } - ], - "name": "safeMint", - "outputs": [ - { - "name": "", - "type": "bool" } ], + "name": "burn", + "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "safeMint(address,uint256,bytes)", - "signature": "8832e6e3a1acdc3c7227cb5f382053393c98d26b7e85fded7d4a78732f9d7cdd", + "method": "burn(address,uint256)", + "signature": "9dc29fac0ba6d4fc521c69c2b0c636d612e3343bc39ed934429b8876b0d12cba", "index": [], "indexed": 0, "eventSignature": null @@ -6468,27 +7161,29 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "to", "type": "address" }, { + "internalType": "uint256", "name": "tokenId", "type": "uint256" - } - ], - "name": "safeMint", - "outputs": [ + }, { - "name": "", - "type": "bool" + "internalType": "bytes", + "name": "_data", + "type": "bytes" } ], + "name": "safeMint", + "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "safeMint(address,uint256)", - "signature": "a144819463c3ba7c3be1edebec61a649b050f2192ad1964059becd97eb86bb4f", + "method": "safeMint(address,uint256,bytes)", + "signature": "8832e6e3a1acdc3c7227cb5f382053393c98d26b7e85fded7d4a78732f9d7cdd", "index": [], "indexed": 0, "eventSignature": null @@ -6498,82 +7193,79 @@ "constant": false, "inputs": [ { - "name": "", - "type": "address" - }, - { - "name": "", + "internalType": "address", + "name": "to", "type": "address" }, { - "name": "", + "internalType": "uint256", + "name": "tokenId", "type": "uint256" - }, - { - "name": "", - "type": "bytes" - } - ], - "name": "onERC721Received", - "outputs": [ - { - "name": "", - "type": "bytes4" } ], + "name": "safeMint", + "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "onERC721Received(address,address,uint256,bytes)", - "signature": "150b7a023d4804d13e8c85fb27262cb750cf6ba9f9dd3bb30d90f482ceeb4b1f", + "method": "safeMint(address,uint256)", + "signature": "a144819463c3ba7c3be1edebec61a649b050f2192ad1964059becd97eb86bb4f", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, - "inputs": [ + "constant": true, + "inputs": [], + "name": "baseURI", + "outputs": [ { - "name": "tokenId", - "type": "uint256" + "internalType": "string", + "name": "", + "type": "string" } ], - "name": "mint", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "mint(uint256)", - "signature": "a0712d680358d64f694230b7cc0b277c73686bdf768385d55cd7c547d0ffd30e", + "method": "baseURI()", + "signature": "6c0360ebdf68e0f62377a9a6e37fcfe105deb69715aa51e836946fccbad7b496", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "owner", + "internalType": "address", + "name": "to", "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" } ], - "name": "tokensOfOwner", + "name": "mint", "outputs": [ { + "internalType": "bool", "name": "", - "type": "uint256[]" + "type": "bool" } ], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "tokensOfOwner(address)", - "signature": "8462151cfcc0f257319f78db464014651918f3905b3d4bdab48d3f4618c542c1", + "method": "mint(address,uint256)", + "signature": "40c10f19c047ae7dfa66d6312b683d2ea3dfbcb4159e96b967c5f4b0a86f2842", "index": [], "indexed": 0, "eventSignature": null @@ -6583,52 +7275,73 @@ "constant": false, "inputs": [ { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { - "name": "uri", + "internalType": "string", + "name": "tokenURI", "type": "string" } ], - "name": "setTokenURI", - "outputs": [], + "name": "mintWithTokenURI", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "setTokenURI(uint256,string)", - "signature": "162094c41f9e614fbfeee6783490985e82953e56e0c70ba6d6e2c64564e7749b", + "method": "mintWithTokenURI(address,uint256,string)", + "signature": "50bb4e7f0f69c56956eebe056f6b491fb7b811bfdb78ec5149e57eaba528b40a", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "account", + "internalType": "address", + "name": "to", "type": "address" }, { - "name": "snapshotId", + "internalType": "uint256", + "name": "tokenId", "type": "uint256" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" } ], - "name": "balanceOfAt", + "name": "safeMint", "outputs": [ { + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "balanceOfAt(address,uint256)", - "signature": "4ee2cd7e1c8d0c67ae50486857122fadf743519435f10363a77120866023ee26", + "method": "safeMint(address,uint256,bytes)", + "signature": "8832e6e3a1acdc3c7227cb5f382053393c98d26b7e85fded7d4a78732f9d7cdd", "index": [], "indexed": 0, "eventSignature": null @@ -6636,20 +7349,32 @@ }, { "constant": false, - "inputs": [], - "name": "snapshot", + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeMint", "outputs": [ { + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "snapshot()", - "signature": "9711715ab0b9a0077d568e6c92e34beda766dfe07bfd405b99f6cc244fc5e675", + "method": "safeMint(address,uint256)", + "signature": "a144819463c3ba7c3be1edebec61a649b050f2192ad1964059becd97eb86bb4f", "index": [], "indexed": 0, "eventSignature": null @@ -6659,13 +7384,20 @@ "constant": true, "inputs": [ { - "name": "snapshotId", + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "index", "type": "uint256" } ], - "name": "totalSupplyAt", + "name": "tokenOfOwnerByIndex", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -6674,30 +7406,51 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "totalSupplyAt(uint256)", - "signature": "981b24d030c40d3021134f151d398b787f7448aa6078c0c9b5ff98879d39a725", + "method": "tokenOfOwnerByIndex(address,uint256)", + "signature": "2f745c59a57ba1667616e5a9707eeaa36ec97c283ee24190b75d9c8d14bcb215", "index": [], "indexed": 0, "eventSignature": null } }, { + "constant": false, "inputs": [ { - "name": "initialAccount", + "internalType": "address", + "name": "", "type": "address" }, { - "name": "initialBalance", + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" } ], "payable": false, "stateMutability": "nonpayable", - "type": "constructor", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "onERC721Received(address,address,uint256,bytes)", + "signature": "150b7a023d4804d13e8c85fb27262cb750cf6ba9f9dd3bb30d90f482ceeb4b1f", "index": [], "indexed": 0, "eventSignature": null @@ -6707,22 +7460,19 @@ "constant": false, "inputs": [ { - "name": "account", - "type": "address" - }, - { - "name": "amount", + "internalType": "uint256", + "name": "tokenId", "type": "uint256" } ], - "name": "burn", + "name": "mint", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "burn(address,uint256)", - "signature": "9dc29fac0ba6d4fc521c69c2b0c636d612e3343bc39ed934429b8876b0d12cba", + "method": "mint(uint256)", + "signature": "a0712d680358d64f694230b7cc0b277c73686bdf768385d55cd7c547d0ffd30e", "index": [], "indexed": 0, "eventSignature": null @@ -6732,27 +7482,19 @@ "constant": false, "inputs": [ { - "name": "", - "type": "address" - }, - { - "name": "", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "", - "type": "bool" + "internalType": "string", + "name": "baseURI", + "type": "string" } ], + "name": "setBaseURI", + "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "transfer(address,uint256)", - "signature": "a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "method": "setBaseURI(string)", + "signature": "55f804b373ab21b346f6f172ca5e118cfcad05163bcea59b35420499bf7e074b", "index": [], "indexed": 0, "eventSignature": null @@ -6762,81 +7504,99 @@ "constant": false, "inputs": [ { - "name": "", - "type": "address" - }, - { - "name": "", - "type": "address" - }, - { - "name": "", + "internalType": "uint256", + "name": "tokenId", "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ + }, { - "name": "", - "type": "bool" + "internalType": "string", + "name": "uri", + "type": "string" } ], + "name": "setTokenURI", + "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "transferFrom(address,address,uint256)", - "signature": "23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b", + "method": "setTokenURI(uint256,string)", + "signature": "162094c41f9e614fbfeee6783490985e82953e56e0c70ba6d6e2c64564e7749b", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "", + "internalType": "address", + "name": "owner", "type": "address" - }, - { - "name": "", - "type": "uint256" } ], - "name": "approve", + "name": "tokensOfOwner", "outputs": [ { + "internalType": "uint256[]", "name": "", - "type": "bool" + "type": "uint256[]" } ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "approve(address,uint256)", - "signature": "095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", + "method": "tokensOfOwner(address)", + "signature": "8462151cfcc0f257319f78db464014651918f3905b3d4bdab48d3f4618c542c1", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, "inputs": [ { - "name": "owner", + "internalType": "address", + "name": "initialAccount", "type": "address" }, { - "name": "", + "internalType": "uint256", + "name": "initialBalance", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor", + "__signatureData": { + "method": null, + "signature": null, + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "account", "type": "address" + }, + { + "internalType": "uint256", + "name": "snapshotId", + "type": "uint256" } ], - "name": "allowance", + "name": "balanceOfAt", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -6845,28 +7605,75 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "allowance(address,address)", - "signature": "dd62ed3e90e97b3d417db9c0c7522647811bafca5afc6694f143588d255fdfb4", + "method": "balanceOfAt(address,uint256)", + "signature": "4ee2cd7e1c8d0c67ae50486857122fadf743519435f10363a77120866023ee26", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "", + "internalType": "address", + "name": "account", "type": "address" }, { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "burn(address,uint256)", + "signature": "9dc29fac0ba6d4fc521c69c2b0c636d612e3343bc39ed934429b8876b0d12cba", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [], + "name": "snapshot", + "outputs": [ + { + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], - "name": "allowance", + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "snapshot()", + "signature": "9711715ab0b9a0077d568e6c92e34beda766dfe07bfd405b99f6cc244fc5e675", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "snapshotId", + "type": "uint256" + } + ], + "name": "totalSupplyAt", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -6875,42 +7682,41 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "allowance(address,address)", - "signature": "dd62ed3e90e97b3d417db9c0c7522647811bafca5afc6694f143588d255fdfb4", + "method": "totalSupplyAt(uint256)", + "signature": "981b24d030c40d3021134f151d398b787f7448aa6078c0c9b5ff98879d39a725", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "from", + "internalType": "address", + "name": "owner", "type": "address" }, { - "name": "to", + "internalType": "address", + "name": "", "type": "address" - }, - { - "name": "value", - "type": "uint256" } ], - "name": "transferFrom", + "name": "allowance", "outputs": [ { + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "transferFrom(address,address,uint256)", - "signature": "23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b", + "method": "allowance(address,address)", + "signature": "dd62ed3e90e97b3d417db9c0c7522647811bafca5afc6694f143588d255fdfb4", "index": [], "indexed": 0, "eventSignature": null @@ -6920,17 +7726,20 @@ "constant": false, "inputs": [ { - "name": "to", + "internalType": "address", + "name": "", "type": "address" }, { - "name": "value", + "internalType": "uint256", + "name": "", "type": "uint256" } ], - "name": "transfer", + "name": "approve", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -6939,8 +7748,8 @@ "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "transfer(address,uint256)", - "signature": "a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "method": "approve(address,uint256)", + "signature": "095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", "index": [], "indexed": 0, "eventSignature": null @@ -6950,16 +7759,24 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "", "type": "address" }, { + "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "transfer", - "outputs": [], + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "payable": false, "stateMutability": "nonpayable", "type": "function", @@ -6975,20 +7792,29 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "", "type": "address" }, { + "internalType": "address", "name": "", "type": "address" }, { + "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "transferFrom", - "outputs": [], + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "payable": false, "stateMutability": "nonpayable", "type": "function", @@ -7001,25 +7827,33 @@ } }, { - "constant": false, + "constant": true, "inputs": [ { + "internalType": "address", "name": "", "type": "address" }, { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", "name": "", "type": "uint256" } ], - "name": "approve", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "approve(address,uint256)", - "signature": "095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", + "method": "allowance(address,address)", + "signature": "dd62ed3e90e97b3d417db9c0c7522647811bafca5afc6694f143588d255fdfb4", "index": [], "indexed": 0, "eventSignature": null @@ -7029,22 +7863,30 @@ "constant": false, "inputs": [ { - "name": "account", + "internalType": "address", + "name": "to", "type": "address" }, { - "name": "amount", + "internalType": "uint256", + "name": "value", "type": "uint256" } ], - "name": "burnFrom", - "outputs": [], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "burnFrom(address,uint256)", - "signature": "79cc679044ee9a2021f0a26c0fdec02ac39179cd005bb971a471b7f9f17c576c", + "method": "transfer(address,uint256)", + "signature": "a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", "index": [], "indexed": 0, "eventSignature": null @@ -7054,26 +7896,35 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "from", "type": "address" }, { + "internalType": "address", "name": "to", "type": "address" }, { + "internalType": "uint256", "name": "value", "type": "uint256" } ], - "name": "transferInternal", - "outputs": [], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "transferInternal(address,address,uint256)", - "signature": "222f5be0bd00bd3dd5e6049849cd873ce8050d883a1eb2e7e638a8decfcc8274", + "method": "transferFrom(address,address,uint256)", + "signature": "23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b", "index": [], "indexed": 0, "eventSignature": null @@ -7083,86 +7934,115 @@ "constant": false, "inputs": [ { - "name": "owner", - "type": "address" - }, - { - "name": "spender", + "internalType": "address", + "name": "", "type": "address" }, { - "name": "value", + "internalType": "uint256", + "name": "", "type": "uint256" } ], - "name": "approveInternal", + "name": "approve", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "approveInternal(address,address,uint256)", - "signature": "56189cb4bb0039044cf7457b35bad3a3c904d529b71d57f6f1feb2e19e3f5de8", + "method": "approve(address,uint256)", + "signature": "095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", "index": [], "indexed": 0, "eventSignature": null } }, { + "constant": false, "inputs": [ { - "name": "legacyToken", + "internalType": "address", + "name": "", "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" } ], + "name": "transfer", + "outputs": [], "payable": false, "stateMutability": "nonpayable", - "type": "constructor", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "transfer(address,uint256)", + "signature": "a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, - "inputs": [], - "name": "legacyToken", - "outputs": [ + "constant": false, + "inputs": [ { + "internalType": "address", "name": "", "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" } ], + "name": "transferFrom", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "legacyToken()", - "signature": "13155455fdd7b3e23ed7eb19d62c49190033e226c08f6bd47d87abf5144f8724", + "method": "transferFrom(address,address,uint256)", + "signature": "23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, - "inputs": [], - "name": "newToken", - "outputs": [ + "constant": false, + "inputs": [ { - "name": "", + "internalType": "address", + "name": "owner", "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" } ], + "name": "approveInternal", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "newToken()", - "signature": "c42bd05aac0f1127e273477372cf897c16d1abfc362babf9af66a2496160f546", + "method": "approveInternal(address,address,uint256)", + "signature": "56189cb4bb0039044cf7457b35bad3a3c904d529b71d57f6f1feb2e19e3f5de8", "index": [], "indexed": 0, "eventSignature": null @@ -7172,6 +8052,85 @@ "constant": false, "inputs": [ { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "burnFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "burnFrom(address,uint256)", + "signature": "79cc679044ee9a2021f0a26c0fdec02ac39179cd005bb971a471b7f9f17c576c", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferInternal", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "transferInternal(address,address,uint256)", + "signature": "222f5be0bd00bd3dd5e6049849cd873ce8050d883a1eb2e7e638a8decfcc8274", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "legacyToken", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor", + "__signatureData": { + "method": null, + "signature": null, + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "internalType": "contract ERC20Mintable", "name": "newToken_", "type": "address" } @@ -7189,14 +8148,38 @@ "eventSignature": null } }, + { + "constant": true, + "inputs": [], + "name": "legacyToken", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "legacyToken()", + "signature": "13155455fdd7b3e23ed7eb19d62c49190033e226c08f6bd47d87abf5144f8724", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, { "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" }, { + "internalType": "uint256", "name": "amount", "type": "uint256" } @@ -7218,6 +8201,7 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } @@ -7238,19 +8222,20 @@ { "constant": true, "inputs": [], - "name": "tokenURI", + "name": "newToken", "outputs": [ { + "internalType": "contract IERC20", "name": "", - "type": "string" + "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "tokenURI()", - "signature": "3c130d90a3a3102bb1d43caeb4a43be8c3d9837b9c8f5a1bae2d0b50edd19a88", + "method": "newToken()", + "signature": "c42bd05aac0f1127e273477372cf897c16d1abfc362babf9af66a2496160f546", "index": [], "indexed": 0, "eventSignature": null @@ -7259,6 +8244,7 @@ { "inputs": [ { + "internalType": "string", "name": "tokenURI", "type": "string" } @@ -7278,6 +8264,7 @@ "constant": false, "inputs": [ { + "internalType": "string", "name": "tokenURI", "type": "string" } @@ -7295,9 +8282,32 @@ "eventSignature": null } }, + { + "constant": true, + "inputs": [], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "tokenURI()", + "signature": "3c130d90a3a3102bb1d43caeb4a43be8c3d9837b9c8f5a1bae2d0b50edd19a88", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, { "inputs": [ { + "internalType": "string", "name": "tokenURI_", "type": "string" } @@ -7316,6 +8326,7 @@ { "inputs": [ { + "internalType": "uint256", "name": "cap", "type": "uint256" } @@ -7335,6 +8346,7 @@ "constant": false, "inputs": [ { + "internalType": "uint256", "name": "amount", "type": "uint256" } @@ -7356,10 +8368,12 @@ "constant": false, "inputs": [ { + "internalType": "bytes32", "name": "interfaceHash", "type": "bytes32" }, { + "internalType": "address", "name": "account", "type": "address" } @@ -7381,6 +8395,7 @@ "constant": false, "inputs": [ { + "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } @@ -7401,6 +8416,7 @@ { "inputs": [ { + "internalType": "bytes4[]", "name": "interfaceIds", "type": "bytes4[]" } @@ -7420,6 +8436,40 @@ "constant": true, "inputs": [ { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes4[]", + "name": "interfaceIds", + "type": "bytes4[]" + } + ], + "name": "supportsAllInterfaces", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "supportsAllInterfaces(address,bytes4[])", + "signature": "4b9dd904cb078ee1a08f706b8d4b358c6527421833dd4e03e307a6d08c4c65ec", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", "name": "account", "type": "address" } @@ -7427,6 +8477,7 @@ "name": "supportsERC165", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -7446,17 +8497,20 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" }, { - "name": "interfaceIds", - "type": "bytes4[]" + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" } ], - "name": "supportsAllInterfaces", + "name": "supportsInterface", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -7465,8 +8519,8 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "supportsAllInterfaces(address,bytes4[])", - "signature": "4b9dd904cb078ee1a08f706b8d4b358c6527421833dd4e03e307a6d08c4c65ec", + "method": "supportsInterface(address,bytes4)", + "signature": "d905700708d92a2c508e53fc47c1f4f3376feb686c0c8272b33827f8f33874a3", "index": [], "indexed": 0, "eventSignature": null @@ -7476,10 +8530,12 @@ "constant": true, "inputs": [ { + "internalType": "bytes32", "name": "hash", "type": "bytes32" }, { + "internalType": "bytes", "name": "signature", "type": "bytes" } @@ -7487,6 +8543,7 @@ "name": "recover", "outputs": [ { + "internalType": "address", "name": "", "type": "address" } @@ -7506,6 +8563,7 @@ "constant": true, "inputs": [ { + "internalType": "bytes32", "name": "hash", "type": "bytes32" } @@ -7513,6 +8571,7 @@ "name": "toEthSignedMessageHash", "outputs": [ { + "internalType": "bytes32", "name": "", "type": "bytes32" } @@ -7530,36 +8589,70 @@ }, { "constant": true, - "inputs": [], - "name": "current", + "inputs": [ + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "code", + "type": "bytes" + }, + { + "internalType": "address", + "name": "deployer", + "type": "address" + } + ], + "name": "computeAddress", "outputs": [ { + "internalType": "address", "name": "", - "type": "uint256" + "type": "address" } ], "payable": false, - "stateMutability": "view", + "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "current()", - "signature": "9fa6a6e3d57c048b1cb13cac09ada19955f823fbf9cbc036d48b820ea08fd246", + "method": "computeAddress(bytes32,bytes,address)", + "signature": "a31809787a81476f538b261e18e5fce04d85a858ff5e8043962669bd9aaffc9f", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, - "inputs": [], - "name": "increment", - "outputs": [], + "constant": true, + "inputs": [ + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "code", + "type": "bytes" + } + ], + "name": "computeAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "increment()", - "signature": "d09de08ab1a974aadf0a76e6f99a2ec20e431f22bbc101a6c3f718e53646ed8d", + "method": "computeAddress(bytes32,bytes)", + "signature": "ca9ffe94145c8771be124ced2e9b2c40e89d5b5afa9e58c1e854fa93a3427c60", "index": [], "indexed": 0, "eventSignature": null @@ -7567,15 +8660,26 @@ }, { "constant": false, - "inputs": [], - "name": "decrement", + "inputs": [ + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "code", + "type": "bytes" + } + ], + "name": "deploy", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "decrement()", - "signature": "2baeceb7defb31e1c8c859f0ad17299dba2cefa354c4852eb3e2d5efad2f8611", + "method": "deploy(bytes32,bytes)", + "signature": "cdcb760ad3353af7c88d45984aeedfae199631256006e32076b2a1693a759efb", "index": [], "indexed": 0, "eventSignature": null @@ -7585,47 +8689,127 @@ "constant": false, "inputs": [ { - "name": "context", - "type": "address" + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" } ], - "name": "callSender", + "name": "deployERC20", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "callSender(address)", - "signature": "3207ad9626aa3e7418cf450b31eddae82faa3c1c2ac6af8831f4698cc851aac2", + "method": "deployERC20(bytes32)", + "signature": "f48fdcd342899e890764a42694e31403aeb5881666d6c5c39075fe6cd4c580cf", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, - "inputs": [ - { - "name": "context", - "type": "address" - }, + "constant": true, + "inputs": [], + "name": "current", + "outputs": [ { - "name": "integerValue", + "internalType": "uint256", + "name": "", "type": "uint256" - }, - { - "name": "stringValue", - "type": "string" } ], - "name": "callData", + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "current()", + "signature": "9fa6a6e3d57c048b1cb13cac09ada19955f823fbf9cbc036d48b820ea08fd246", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [], + "name": "decrement", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "callData(address,uint256,string)", - "signature": "00860459816b29739ac426ab214bc2685ba3f4c418cc4cd43e6a2302a3a6f424", + "method": "decrement()", + "signature": "2baeceb7defb31e1c8c859f0ad17299dba2cefa354c4852eb3e2d5efad2f8611", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [], + "name": "increment", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "increment()", + "signature": "d09de08ab1a974aadf0a76e6f99a2ec20e431f22bbc101a6c3f718e53646ed8d", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "internalType": "contract ContextMock", + "name": "context", + "type": "address" + }, + { + "internalType": "uint256", + "name": "integerValue", + "type": "uint256" + }, + { + "internalType": "string", + "name": "stringValue", + "type": "string" + } + ], + "name": "callData", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "callData(address,uint256,string)", + "signature": "00860459816b29739ac426ab214bc2685ba3f4c418cc4cd43e6a2302a3a6f424", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "internalType": "contract ContextMock", + "name": "context", + "type": "address" + } + ], + "name": "callSender", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "callSender(address)", + "signature": "3207ad9626aa3e7418cf450b31eddae82faa3c1c2ac6af8831f4698cc851aac2", "index": [], "indexed": 0, "eventSignature": null @@ -7635,10 +8819,12 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "payee", "type": "address" }, { + "internalType": "bool", "name": "allowed", "type": "bool" } @@ -7660,6 +8846,7 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "payee", "type": "address" } @@ -7667,6 +8854,7 @@ "name": "withdrawalAllowed", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -7685,18 +8873,22 @@ { "inputs": [ { + "internalType": "uint256", "name": "rate", "type": "uint256" }, { + "internalType": "address payable", "name": "wallet", "type": "address" }, { + "internalType": "contract IERC20", "name": "token", "type": "address" }, { + "internalType": "uint256", "name": "cap", "type": "uint256" } @@ -7715,6 +8907,7 @@ { "inputs": [ { + "internalType": "uint256[]", "name": "_array", "type": "uint256[]" } @@ -7734,6 +8927,7 @@ "constant": true, "inputs": [ { + "internalType": "uint256", "name": "_element", "type": "uint256" } @@ -7741,6 +8935,7 @@ "name": "findUpperBound", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -7756,12 +8951,47 @@ "eventSignature": null } }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "rate", + "type": "uint256" + }, + { + "internalType": "address payable", + "name": "wallet", + "type": "address" + }, + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenWallet", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor", + "__signatureData": { + "method": null, + "signature": null, + "index": [], + "indexed": 0, + "eventSignature": null + } + }, { "constant": true, "inputs": [], "name": "remainingTokens", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -7783,6 +9013,7 @@ "name": "tokenWallet", "outputs": [ { + "internalType": "address", "name": "", "type": "address" } @@ -7801,18 +9032,7 @@ { "inputs": [ { - "name": "rate", - "type": "uint256" - }, - { - "name": "wallet", - "type": "address" - }, - { - "name": "token", - "type": "address" - }, - { + "internalType": "address", "name": "tokenWallet", "type": "address" } @@ -7829,44 +9049,55 @@ } }, { + "constant": true, "inputs": [ { - "name": "tokenWallet", + "internalType": "address", + "name": "account", "type": "address" } ], + "name": "isContract", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "payable": false, - "stateMutability": "nonpayable", - "type": "constructor", + "stateMutability": "view", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "isContract(address)", + "signature": "16279055d07f3f98da17007e489f07a8037a8763b169d601c4db770dec17dc13", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "account", + "internalType": "address payable", + "name": "receiver", "type": "address" - } - ], - "name": "isContract", - "outputs": [ + }, { - "name": "", - "type": "bool" + "internalType": "uint256", + "name": "amount", + "type": "uint256" } ], + "name": "sendValue", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "isContract(address)", - "signature": "16279055d07f3f98da17007e489f07a8037a8763b169d601c4db770dec17dc13", + "method": "sendValue(address,uint256)", + "signature": "24a084dfedb552881fe75e937a5b15c2822e1b879ff607c151ec3982f55dc07d", "index": [], "indexed": 0, "eventSignature": null @@ -7876,6 +9107,7 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } @@ -7883,6 +9115,7 @@ "name": "toPayable", "outputs": [ { + "internalType": "address payable", "name": "", "type": "address" } @@ -7902,55 +9135,72 @@ "constant": false, "inputs": [ { - "name": "receiver", + "name": "_spender", "type": "address" }, { - "name": "amount", + "name": "_value", "type": "uint256" + }, + { + "name": "_extraData", + "type": "bytes" + } + ], + "name": "approveAndCall", + "outputs": [ + { + "name": "success", + "type": "bool" } ], - "name": "sendValue", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "sendValue(address,uint256)", - "signature": "24a084dfedb552881fe75e937a5b15c2822e1b879ff607c151ec3982f55dc07d", + "method": "approveAndCall(address,uint256,bytes)", + "signature": "cae9ca5133009d821214ac8231b3d170f22d822ee165adb631578070b6316fc9", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, - "inputs": [ + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ { - "name": "_spender", + "name": "", "type": "address" - }, - { - "name": "_value", - "type": "uint256" - }, - { - "name": "_extraData", - "type": "bytes" } ], - "name": "approveAndCall", + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "owner()", + "signature": "8da5cb5b36e7f68c1d2e56001220cdbdd3ba2616072f718acfda4a06441a807d", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "isOwner", "outputs": [ { - "name": "success", + "name": "", "type": "bool" } ], "payable": false, + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "approveAndCall(address,uint256,bytes)", - "signature": "cae9ca5133009d821214ac8231b3d170f22d822ee165adb631578070b6316fc9", + "method": "isOwner()", + "signature": "8f32d59b339b0965093e9a53b00f4400c41d72f026df85c0beaa1d49d97802ef", "index": [], "indexed": 0, "eventSignature": null @@ -8019,6 +9269,27 @@ "eventSignature": null } }, + { + "constant": false, + "inputs": [ + { + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "transferOwnership(address)", + "signature": "f2fde38b092330466c661fc723d5289b90272a3e580e3187d1d7ef788506c557", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, { "constant": true, "inputs": [], @@ -8750,18 +10021,1254 @@ "constant": false, "inputs": [ { - "name": "transactionId", - "type": "uint256" + "name": "transactionId", + "type": "uint256" + } + ], + "name": "confirmTransaction", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "confirmTransaction(uint256)", + "signature": "c01a8c8473427a14639d2bc8bef9d7b2742747740ed212950f4e530781dbdf5d", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "destination", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "submitTransaction", + "outputs": [ + { + "name": "transactionId", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "submitTransaction(address,uint256,bytes)", + "signature": "c6427474ff2c4baa130d285c9d32ec41c0e07b9cc4b5b273ab66f916faee964a", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "MAX_OWNER_COUNT", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "MAX_OWNER_COUNT()", + "signature": "d74f8edde535768f1ff54c90926dc3dbf92d9a622a8bef11a7b8190467308d77", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "required", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "required()", + "signature": "dc8452cd18861a7926d01a29fd774a76d0fc4e57278afa13cbc91639fcd16e1f", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "newOwner", + "type": "address" + } + ], + "name": "replaceOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "replaceOwner(address,address)", + "signature": "e20056e60a9f58b726b610d5a8e40f97e687707f2f9b3f9ccdaabe2ee85aa6d4", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "transactionId", + "type": "uint256" + } + ], + "name": "executeTransaction", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "executeTransaction(uint256)", + "signature": "ee22610b57af59171fe491c7d4d59b4d01c283e32b93b77db36266c6ad1b5877", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "inputs": [ + { + "name": "_owners", + "type": "address[]" + }, + { + "name": "_required", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor", + "__signatureData": { + "method": null, + "signature": null, + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "name": "operator", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "getApproved(uint256)", + "signature": "081812fc55e34fdc7cf5d8b5cf4e3621fa6423fde952ec6ab24afdc0d85c0b2e", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "approve(address,uint256)", + "signature": "095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "transferFrom(address,address,uint256)", + "signature": "23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "safeTransferFrom(address,address,uint256)", + "signature": "42842e0eb38857a7775b4e7364b2775df7325074d088e7fb39590cd6281184ed", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "name": "owner", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "ownerOf(uint256)", + "signature": "6352211e6566aa027e75ac9dbf2423197fbd9b82b9d981a3ab367d355866aa1c", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "balance", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "balanceOf(address)", + "signature": "70a08231b98ef4ca268c9cc3f6b4590e4bfec28280db06bb5d45e689f2a360be", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "operator", + "type": "address" + }, + { + "name": "_approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "setApprovalForAll(address,bool)", + "signature": "a22cb4651ab9570f89bb516380c40ce76762284fb1f21337ceaf6adab99e7d4a", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "tokenId", + "type": "uint256" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "safeTransferFrom(address,address,uint256,bytes)", + "signature": "b88d4fde60196325a28bb7f99a2582e0b46de55b18761e960c14ad7a32099465", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "isApprovedForAll(address,address)", + "signature": "e985e9c5c6636c6879256001057b28ccac7718ef0ac56553ff9b926452cab8a3", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "name()", + "signature": "06fdde0383f15d582d1a74511486c9ddf862a882fb7904b3d9fe9b8b8e58a796", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "symbol()", + "signature": "95d89b41e2f5f391a79ec54e9d87c79d6e777c63e32c28da95b4e9e4a79250ec", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "tokenURI(uint256)", + "signature": "c87b56dda752230262935940d907f047a9f86bb5ee6aa33511fc86db33fea6cc", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "totalSupply()", + "signature": "18160ddd7f15c72528c2f94fd8dfe3c8d5aa26e2c50c7d81f4bc7bee8d4b7932", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "index", + "type": "uint256" + } + ], + "name": "tokenOfOwnerByIndex", + "outputs": [ + { + "name": "tokenId", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "tokenOfOwnerByIndex(address,uint256)", + "signature": "2f745c59a57ba1667616e5a9707eeaa36ec97c283ee24190b75d9c8d14bcb215", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "name": "index", + "type": "uint256" + } + ], + "name": "tokenByIndex", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "tokenByIndex(uint256)", + "signature": "4f6ccce7c41aed90ec1f1887c4a821594c0f73758d8941d0ccaa2cde813b7298", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "indexed": false, + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "name": "_value", + "type": "uint256" + }, + { + "indexed": false, + "name": "_data", + "type": "bytes" + } + ], + "name": "transferAndCall", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "type": "function", + "__signatureData": { + "method": "transferAndCall(address,uint256,bytes)", + "signature": "4000aea038e4acde4ff65b413088ec658ae209bdf83ccba2ffbbaa2d9ce48cde", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "approve(address,uint256)", + "signature": "095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "sender", + "type": "address" + }, + { + "name": "recipient", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "transferFrom(address,address,uint256)", + "signature": "23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "increaseAllowance(address,uint256)", + "signature": "39509351d3325647dde3fdd3c8b249adfe89ef4f16d76d83768e6df7a5cd81d6", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "balanceOf(address)", + "signature": "70a08231b98ef4ca268c9cc3f6b4590e4bfec28280db06bb5d45e689f2a360be", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "decreaseAllowance(address,uint256)", + "signature": "a457c2d77307f80ff2f3ac810ec99eb18ae2cffee13b29c90c9324546e374be5", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "recipient", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "transfer(address,uint256)", + "signature": "a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "allowance(address,address)", + "signature": "dd62ed3e90e97b3d417db9c0c7522647811bafca5afc6694f143588d255fdfb4", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [], + "name": "snapshot", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "snapshot()", + "signature": "9711715ab0b9a0077d568e6c92e34beda766dfe07bfd405b99f6cc244fc5e675", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + }, + { + "name": "snapshotId", + "type": "uint256" + } + ], + "name": "balanceOfAt", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "balanceOfAt(address,uint256)", + "signature": "4ee2cd7e1c8d0c67ae50486857122fadf743519435f10363a77120866023ee26", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "name": "snapshotId", + "type": "uint256" + } + ], + "name": "totalSupplyAt", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "totalSupplyAt(uint256)", + "signature": "981b24d030c40d3021134f151d398b787f7448aa6078c0c9b5ff98879d39a725", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isPauser", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "isPauser(address)", + "signature": "46fbf68e9af4b174565acc7a5f5256df89a0019864cab4994b666e1897990183", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "paused", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "paused()", + "signature": "5c975abbf8c4d6efa68fc896e233763eb503f2318260b7bf59b19412913788b2", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addPauser", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "addPauser(address)", + "signature": "82dc1ec426f590f8e02fbc1e3fcd7395a4cc661900beaeea90dc088b2956fc37", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "transfer(address,uint256)", + "signature": "a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "transferFrom(address,address,uint256)", + "signature": "23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addMinter", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "addMinter(address)", + "signature": "983b2d560bdd6b422e26073d9516b4646e2f1008810070c0d32b3a79aaa7bfcb", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isMinter", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "isMinter(address)", + "signature": "aa271e1a9a41b51f5b4e2e4ce717c974174719a5ddc12cee839f0eabbdf42748", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "mint(address,uint256)", + "signature": "40c10f19c047ae7dfa66d6312b683d2ea3dfbcb4159e96b967c5f4b0a86f2842", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "inputs": [ + { + "name": "legacyToken", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor", + "__signatureData": { + "method": null, + "signature": null, + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "legacyToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "legacyToken()", + "signature": "13155455fdd7b3e23ed7eb19d62c49190033e226c08f6bd47d87abf5144f8724", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "newToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "newToken()", + "signature": "c42bd05aac0f1127e273477372cf897c16d1abfc362babf9af66a2496160f546", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "newToken_", + "type": "address" + } + ], + "name": "beginMigration", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "beginMigration(address)", + "signature": "104d2614802041eeb018bbccaeba548b9a7ee898af4bcd6e9cce457ec8960361", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "migrate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "migrate(address,uint256)", + "signature": "ad68ebf738de8bb84d6664bd7e8367bb1eaee463836fc2757f2fe2d2dab8f178", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "migrateAll", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "migrateAll(address)", + "signature": "5a8cadb1d8b081fcaa5d74a05a907b404a812656b318e7fbcb088fef3c652906", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "inputs": [ + { + "name": "tokenURI_", + "type": "string" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor", + "__signatureData": { + "method": null, + "signature": null, + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "tokenURI", + "outputs": [ + { + "name": "", + "type": "string" } ], - "name": "confirmTransaction", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "confirmTransaction(uint256)", - "signature": "c01a8c8473427a14639d2bc8bef9d7b2742747740ed212950f4e530781dbdf5d", + "method": "tokenURI()", + "signature": "3c130d90a3a3102bb1d43caeb4a43be8c3d9837b9c8f5a1bae2d0b50edd19a88", "index": [], "indexed": 0, "eventSignature": null @@ -8771,52 +11278,53 @@ "constant": false, "inputs": [ { - "name": "destination", + "name": "spender", "type": "address" }, { - "name": "value", + "name": "amount", "type": "uint256" - }, - { - "name": "data", - "type": "bytes" } ], - "name": "submitTransaction", + "name": "approve", "outputs": [ { - "name": "transactionId", - "type": "uint256" + "name": "", + "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "submitTransaction(address,uint256,bytes)", - "signature": "c6427474ff2c4baa130d285c9d32ec41c0e07b9cc4b5b273ab66f916faee964a", + "method": "approve(address,uint256)", + "signature": "095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, - "inputs": [], - "name": "MAX_OWNER_COUNT", - "outputs": [ + "inputs": [ { - "name": "", - "type": "uint256" + "name": "name", + "type": "string" + }, + { + "name": "symbol", + "type": "string" + }, + { + "name": "decimals", + "type": "uint8" } ], "payable": false, - "stateMutability": "view", - "type": "function", + "stateMutability": "nonpayable", + "type": "constructor", "__signatureData": { - "method": "MAX_OWNER_COUNT()", - "signature": "d74f8edde535768f1ff54c90926dc3dbf92d9a622a8bef11a7b8190467308d77", + "method": null, + "signature": null, "index": [], "indexed": 0, "eventSignature": null @@ -8825,123 +11333,104 @@ { "constant": true, "inputs": [], - "name": "required", + "name": "decimals", "outputs": [ { "name": "", - "type": "uint256" + "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "required()", - "signature": "dc8452cd18861a7926d01a29fd774a76d0fc4e57278afa13cbc91639fcd16e1f", + "method": "decimals()", + "signature": "313ce567add4d438edf58b94ff345d7d38c45b17dfc0f947988d7819dca364f9", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, "inputs": [ { - "name": "owner", - "type": "address" - }, - { - "name": "newOwner", - "type": "address" + "name": "cap", + "type": "uint256" } ], - "name": "replaceOwner", - "outputs": [], "payable": false, "stateMutability": "nonpayable", - "type": "function", + "type": "constructor", "__signatureData": { - "method": "replaceOwner(address,address)", - "signature": "e20056e60a9f58b726b610d5a8e40f97e687707f2f9b3f9ccdaabe2ee85aa6d4", + "method": null, + "signature": null, "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, - "inputs": [ + "constant": true, + "inputs": [], + "name": "cap", + "outputs": [ { - "name": "transactionId", + "name": "", "type": "uint256" } ], - "name": "executeTransaction", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "executeTransaction(uint256)", - "signature": "ee22610b57af59171fe491c7d4d59b4d01c283e32b93b77db36266c6ad1b5877", + "method": "cap()", + "signature": "355274ea4c5084069935a4456a1ac3001e99e7cb12c33ca22e251b993bb2c183", "index": [], "indexed": 0, "eventSignature": null } }, { + "constant": false, "inputs": [ { - "name": "_owners", - "type": "address[]" - }, - { - "name": "_required", + "name": "amount", "type": "uint256" } ], + "name": "burn", + "outputs": [], "payable": false, "stateMutability": "nonpayable", - "type": "constructor", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "burn(uint256)", + "signature": "42966c689b5afe9b9b3f8a7103b2a19980d59629bfd6a20a60972312ed41d836", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [ { - "indexed": false, - "name": "_to", + "name": "account", "type": "address" }, { - "indexed": false, - "name": "_value", + "name": "amount", "type": "uint256" - }, - { - "indexed": false, - "name": "_data", - "type": "bytes" - } - ], - "name": "transferAndCall", - "outputs": [ - { - "name": "", - "type": "bool" } ], + "name": "burnFrom", + "outputs": [], "payable": false, + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "transferAndCall(address,uint256,bytes)", - "signature": "4000aea038e4acde4ff65b413088ec658ae209bdf83ccba2ffbbaa2d9ce48cde", + "method": "burnFrom(address,uint256)", + "signature": "79cc679044ee9a2021f0a26c0fdec02ac39179cd005bb971a471b7f9f17c576c", "index": [], "indexed": 0, "eventSignature": null @@ -9097,11 +11586,38 @@ "eventSignature": null } }, + { + "constant": true, + "inputs": [ + { + "name": "interfaceID", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "supportsInterface(bytes4)", + "signature": "01ffc9a7a5cef8baa21ed3c5c0d7e23accb804b619e9333b597f47a0d84076e2", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, { "anonymous": false, "inputs": [ { "indexed": false, + "internalType": "address", "name": "recipient", "type": "address" } @@ -9123,32 +11639,35 @@ "inputs": [ { "indexed": true, - "name": "from", + "internalType": "address", + "name": "owner", "type": "address" }, { "indexed": true, - "name": "to", + "internalType": "address", + "name": "spender", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "value", "type": "uint256" } ], - "name": "Transfer", + "name": "Approval", "type": "event", "__signatureData": { - "method": "Transfer(address,address,uint256)", - "signature": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "method": "Approval(address,address,uint256)", + "signature": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", "index": [ true, true, false ], "indexed": 2, - "eventSignature": "9c7b1a6ce28bcb017f375ee62692e394c7c01468f747d77cbe951f0a46cb7e46" + "eventSignature": "c7d8669ee07fb153b456cd2bed49219edf650afb6c1e089e795e213ca4636b63" } }, { @@ -9156,32 +11675,35 @@ "inputs": [ { "indexed": true, - "name": "owner", + "internalType": "address", + "name": "from", "type": "address" }, { "indexed": true, - "name": "spender", + "internalType": "address", + "name": "to", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "value", "type": "uint256" } ], - "name": "Approval", + "name": "Transfer", "type": "event", "__signatureData": { - "method": "Approval(address,address,uint256)", - "signature": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "method": "Transfer(address,address,uint256)", + "signature": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", "index": [ true, true, false ], "indexed": 2, - "eventSignature": "c7d8669ee07fb153b456cd2bed49219edf650afb6c1e089e795e213ca4636b63" + "eventSignature": "9c7b1a6ce28bcb017f375ee62692e394c7c01468f747d77cbe951f0a46cb7e46" } }, { @@ -9189,20 +11711,21 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "account", "type": "address" } ], - "name": "WhitelistedAdded", + "name": "WhitelistAdminAdded", "type": "event", "__signatureData": { - "method": "WhitelistedAdded(address)", - "signature": "ee1504a83b6d4a361f4c1dc78ab59bfa30d6a3b6612c403e86bb01ef2984295f", + "method": "WhitelistAdminAdded(address)", + "signature": "22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd20961299", "index": [ true ], "indexed": 1, - "eventSignature": "9336231e22b867dab5542040d04e8c6df785adbb1ac02b8cbfdc95a28161b471" + "eventSignature": "67e6989e2763f5f9748a52b2f1548ee9a7617d7148619b3ed57cd7ad4c89ce4d" } }, { @@ -9210,20 +11733,21 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "account", "type": "address" } ], - "name": "WhitelistedRemoved", + "name": "WhitelistAdminRemoved", "type": "event", "__signatureData": { - "method": "WhitelistedRemoved(address)", - "signature": "270d9b30cf5b0793bbfd54c9d5b94aeb49462b8148399000265144a8722da6b6", + "method": "WhitelistAdminRemoved(address)", + "signature": "0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e165", "index": [ true ], "indexed": 1, - "eventSignature": "3e172418151511c31245dc6615847969d48c97107b411294304772f374bcf0ad" + "eventSignature": "f64b031d2f6ff287e1c6f2bc038f511c7c8446b749c0140d3d21ad2192073933" } }, { @@ -9231,20 +11755,21 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "account", "type": "address" } ], - "name": "WhitelistAdminAdded", + "name": "WhitelistedAdded", "type": "event", "__signatureData": { - "method": "WhitelistAdminAdded(address)", - "signature": "22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd20961299", + "method": "WhitelistedAdded(address)", + "signature": "ee1504a83b6d4a361f4c1dc78ab59bfa30d6a3b6612c403e86bb01ef2984295f", "index": [ true ], "indexed": 1, - "eventSignature": "67e6989e2763f5f9748a52b2f1548ee9a7617d7148619b3ed57cd7ad4c89ce4d" + "eventSignature": "9336231e22b867dab5542040d04e8c6df785adbb1ac02b8cbfdc95a28161b471" } }, { @@ -9252,20 +11777,21 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "account", "type": "address" } ], - "name": "WhitelistAdminRemoved", + "name": "WhitelistedRemoved", "type": "event", "__signatureData": { - "method": "WhitelistAdminRemoved(address)", - "signature": "0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e165", + "method": "WhitelistedRemoved(address)", + "signature": "270d9b30cf5b0793bbfd54c9d5b94aeb49462b8148399000265144a8722da6b6", "index": [ true ], "indexed": 1, - "eventSignature": "f64b031d2f6ff287e1c6f2bc038f511c7c8446b749c0140d3d21ad2192073933" + "eventSignature": "3e172418151511c31245dc6615847969d48c97107b411294304772f374bcf0ad" } }, { @@ -9273,21 +11799,25 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "purchaser", "type": "address" }, { "indexed": true, + "internalType": "address", "name": "beneficiary", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "value", "type": "uint256" }, { "indexed": false, + "internalType": "uint256", "name": "amount", "type": "uint256" } @@ -9311,27 +11841,29 @@ "anonymous": false, "inputs": [ { - "indexed": false, - "name": "token", + "indexed": true, + "internalType": "address", + "name": "previousOwner", "type": "address" }, { - "indexed": false, - "name": "amount", - "type": "uint256" + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" } ], - "name": "TokensReleased", + "name": "OwnershipTransferred", "type": "event", "__signatureData": { - "method": "TokensReleased(address,uint256)", - "signature": "c7798891864187665ac6dd119286e44ec13f014527aeeb2b8eb3fd413df93179", + "method": "OwnershipTransferred(address,address)", + "signature": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "index": [ - false, - false + true, + true ], - "indexed": 0, - "eventSignature": "02db3711eb0df97fe489267794793ab70c330d05441540e8a6fc2995da3511ed" + "indexed": 2, + "eventSignature": "3caeb92b995b79aafedafa1caa25cbfb65b7311e29c30deb24dabcec8f6b9a82" } }, { @@ -9339,6 +11871,7 @@ "inputs": [ { "indexed": false, + "internalType": "address", "name": "token", "type": "address" } @@ -9359,27 +11892,29 @@ "anonymous": false, "inputs": [ { - "indexed": true, - "name": "previousOwner", + "indexed": false, + "internalType": "address", + "name": "token", "type": "address" }, { - "indexed": true, - "name": "newOwner", - "type": "address" + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" } ], - "name": "OwnershipTransferred", + "name": "TokensReleased", "type": "event", "__signatureData": { - "method": "OwnershipTransferred(address,address)", - "signature": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "method": "TokensReleased(address,uint256)", + "signature": "c7798891864187665ac6dd119286e44ec13f014527aeeb2b8eb3fd413df93179", "index": [ - true, - true + false, + false ], - "indexed": 2, - "eventSignature": "3caeb92b995b79aafedafa1caa25cbfb65b7311e29c30deb24dabcec8f6b9a82" + "indexed": 0, + "eventSignature": "02db3711eb0df97fe489267794793ab70c330d05441540e8a6fc2995da3511ed" } }, { @@ -9387,11 +11922,13 @@ "inputs": [ { "indexed": false, + "internalType": "uint256", "name": "prevClosingTime", "type": "uint256" }, { "indexed": false, + "internalType": "uint256", "name": "newClosingTime", "type": "uint256" } @@ -9414,6 +11951,7 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "account", "type": "address" } @@ -9435,6 +11973,7 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "account", "type": "address" } @@ -9456,6 +11995,7 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "account", "type": "address" } @@ -9477,6 +12017,7 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "account", "type": "address" } @@ -9506,42 +12047,18 @@ "eventSignature": "9270cc390c096600a1c17c44345a1ba689fafd99d97487b10cfccf86cf731836" } }, - { - "anonymous": false, - "inputs": [], - "name": "RefundsClosed", - "type": "event", - "__signatureData": { - "method": "RefundsClosed()", - "signature": "088672c3a6e342f7cd94a65ba63b79df24a8973927b4d05d803c44bbf787d12f", - "index": [], - "indexed": 0, - "eventSignature": "088672c3a6e342f7cd94a65ba63b79df24a8973927b4d05d803c44bbf787d12f" - } - }, - { - "anonymous": false, - "inputs": [], - "name": "RefundsEnabled", - "type": "event", - "__signatureData": { - "method": "RefundsEnabled()", - "signature": "599d8e5a83cffb867d051598c4d70e805d59802d8081c1c7d6dffc5b6aca2b89", - "index": [], - "indexed": 0, - "eventSignature": "599d8e5a83cffb867d051598c4d70e805d59802d8081c1c7d6dffc5b6aca2b89" - } - }, { "anonymous": false, "inputs": [ { "indexed": true, + "internalType": "address", "name": "payee", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "weiAmount", "type": "uint256" } @@ -9559,16 +12076,44 @@ "eventSignature": "f3cfbfbac77890a74b67531fe3b229cc981c138b288016538ab25faeb5297748" } }, + { + "anonymous": false, + "inputs": [], + "name": "RefundsClosed", + "type": "event", + "__signatureData": { + "method": "RefundsClosed()", + "signature": "088672c3a6e342f7cd94a65ba63b79df24a8973927b4d05d803c44bbf787d12f", + "index": [], + "indexed": 0, + "eventSignature": "088672c3a6e342f7cd94a65ba63b79df24a8973927b4d05d803c44bbf787d12f" + } + }, + { + "anonymous": false, + "inputs": [], + "name": "RefundsEnabled", + "type": "event", + "__signatureData": { + "method": "RefundsEnabled()", + "signature": "599d8e5a83cffb867d051598c4d70e805d59802d8081c1c7d6dffc5b6aca2b89", + "index": [], + "indexed": 0, + "eventSignature": "599d8e5a83cffb867d051598c4d70e805d59802d8081c1c7d6dffc5b6aca2b89" + } + }, { "anonymous": false, "inputs": [ { "indexed": true, + "internalType": "address", "name": "payee", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "weiAmount", "type": "uint256" } @@ -9591,11 +12136,13 @@ "inputs": [ { "indexed": false, + "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "shares", "type": "uint256" } @@ -9618,26 +12165,28 @@ "inputs": [ { "indexed": false, - "name": "to", + "internalType": "address", + "name": "from", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "amount", "type": "uint256" } ], - "name": "PaymentReleased", + "name": "PaymentReceived", "type": "event", "__signatureData": { - "method": "PaymentReleased(address,uint256)", - "signature": "df20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056", + "method": "PaymentReceived(address,uint256)", + "signature": "6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be770", "index": [ false, false ], "indexed": 0, - "eventSignature": "db424b1713867a4b9700d3e51d84caaec00f54e9c90d51ab3a0e1f440358cb3b" + "eventSignature": "0cc0c12213151cb2f76744da3e56fd7bd753d7e48599303461b350e04d6b5181" } }, { @@ -9645,26 +12194,28 @@ "inputs": [ { "indexed": false, - "name": "from", + "internalType": "address", + "name": "to", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "amount", "type": "uint256" } ], - "name": "PaymentReceived", + "name": "PaymentReleased", "type": "event", "__signatureData": { - "method": "PaymentReceived(address,uint256)", - "signature": "6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be770", + "method": "PaymentReleased(address,uint256)", + "signature": "df20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056", "index": [ false, false ], "indexed": 0, - "eventSignature": "0cc0c12213151cb2f76744da3e56fd7bd753d7e48599303461b350e04d6b5181" + "eventSignature": "db424b1713867a4b9700d3e51d84caaec00f54e9c90d51ab3a0e1f440358cb3b" } }, { @@ -9672,6 +12223,7 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "account", "type": "address" } @@ -9693,6 +12245,7 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "account", "type": "address" } @@ -9714,6 +12267,7 @@ "inputs": [ { "indexed": false, + "internalType": "address", "name": "account", "type": "address" } @@ -9735,6 +12289,7 @@ "inputs": [ { "indexed": false, + "internalType": "address", "name": "account", "type": "address" } @@ -9756,6 +12311,7 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "account", "type": "address" } @@ -9777,6 +12333,7 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "account", "type": "address" } @@ -9798,32 +12355,49 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "relay", "type": "address" }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, { "indexed": false, - "name": "stake", - "type": "uint256" + "internalType": "bytes4", + "name": "selector", + "type": "bytes4" }, { "indexed": false, - "name": "unstakeDelay", + "internalType": "uint256", + "name": "reason", "type": "uint256" } ], - "name": "Staked", + "name": "CanRelayFailed", "type": "event", "__signatureData": { - "method": "Staked(address,uint256,uint256)", - "signature": "1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee90", + "method": "CanRelayFailed(address,address,address,bytes4,uint256)", + "signature": "afb5afd6d1c2e8ffbfb480e674a169f493ece0b22658d4f4484e7334f0241e22", "index": [ + true, + true, true, false, false ], - "indexed": 1, - "eventSignature": "866a84c3f9aeb093e2ed8da68f59fec2c0971ee8b15c04c6eb15637f24547150" + "indexed": 3, + "eventSignature": "6246ddc1cc93e5818d257ca595114ddd2fd834dd28e80d8fadf4128b1b50b817" } }, { @@ -9831,50 +12405,35 @@ "inputs": [ { "indexed": true, - "name": "relay", + "internalType": "address", + "name": "recipient", "type": "address" }, { "indexed": true, - "name": "owner", + "internalType": "address", + "name": "from", "type": "address" }, { "indexed": false, - "name": "transactionFee", - "type": "uint256" - }, - { - "indexed": false, - "name": "stake", - "type": "uint256" - }, - { - "indexed": false, - "name": "unstakeDelay", + "internalType": "uint256", + "name": "amount", "type": "uint256" - }, - { - "indexed": false, - "name": "url", - "type": "string" } ], - "name": "RelayAdded", + "name": "Deposited", "type": "event", "__signatureData": { - "method": "RelayAdded(address,address,uint256,uint256,uint256,string)", - "signature": "85b3ae3aae9d3fcb31142fbd8c3b4722d57825b8edd6e1366e69204afa5a0dfa", + "method": "Deposited(address,address,uint256)", + "signature": "8752a472e571a816aea92eec8dae9baf628e840f4929fbcc2d155e6233ff68a7", "index": [ true, true, - false, - false, - false, false ], "indexed": 2, - "eventSignature": "a010a6bcf7b5930fdbd642b6d69171ef53492d7ec2ff6f3a0bfd938924a04848" + "eventSignature": "797e51340ec17e6b1c56dac14c59854d8571c6e20f423c47787c023ebaa79fd9" } }, { @@ -9882,53 +12441,35 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "relay", "type": "address" }, { "indexed": false, - "name": "unstakeTime", - "type": "uint256" - } - ], - "name": "RelayRemoved", - "type": "event", - "__signatureData": { - "method": "RelayRemoved(address,uint256)", - "signature": "5490afc1d818789c8b3d5d63bce3d2a3327d0bba4efb5a7751f783dc977d7d11", - "index": [ - true, - false - ], - "indexed": 1, - "eventSignature": "76d3e427a904ff3e9d6e769ffdc8d45d9a15ccc490df2b6ef20d714d469b478a" - } - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "relay", + "internalType": "address", + "name": "sender", "type": "address" }, { "indexed": false, - "name": "stake", + "internalType": "uint256", + "name": "amount", "type": "uint256" } ], - "name": "Unstaked", + "name": "Penalized", "type": "event", "__signatureData": { - "method": "Unstaked(address,uint256)", - "signature": "0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f75", + "method": "Penalized(address,address,uint256)", + "signature": "b0595266ccec357806b2691f348b128209f1060a0bda4f5c95f7090730351ff8", "index": [ true, + false, false ], "indexed": 1, - "eventSignature": "7b0523b2f18848528150d0f26cee4fca3ed681a33b92b5024efd04a83cf76c54" + "eventSignature": "15f5b18190245966e1819276c43b6197a82443a6934cafb8dc5e3dd2be1bba5b" } }, { @@ -9936,32 +12477,56 @@ "inputs": [ { "indexed": true, - "name": "recipient", + "internalType": "address", + "name": "relay", "type": "address" }, { "indexed": true, - "name": "from", + "internalType": "address", + "name": "owner", "type": "address" }, { "indexed": false, - "name": "amount", + "internalType": "uint256", + "name": "transactionFee", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "stake", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "unstakeDelay", "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "url", + "type": "string" } ], - "name": "Deposited", + "name": "RelayAdded", "type": "event", "__signatureData": { - "method": "Deposited(address,address,uint256)", - "signature": "8752a472e571a816aea92eec8dae9baf628e840f4929fbcc2d155e6233ff68a7", + "method": "RelayAdded(address,address,uint256,uint256,uint256,string)", + "signature": "85b3ae3aae9d3fcb31142fbd8c3b4722d57825b8edd6e1366e69204afa5a0dfa", "index": [ true, true, + false, + false, + false, false ], "indexed": 2, - "eventSignature": "797e51340ec17e6b1c56dac14c59854d8571c6e20f423c47787c023ebaa79fd9" + "eventSignature": "a010a6bcf7b5930fdbd642b6d69171ef53492d7ec2ff6f3a0bfd938924a04848" } }, { @@ -9969,32 +12534,28 @@ "inputs": [ { "indexed": true, - "name": "account", - "type": "address" - }, - { - "indexed": true, - "name": "dest", + "internalType": "address", + "name": "relay", "type": "address" }, { "indexed": false, - "name": "amount", + "internalType": "uint256", + "name": "unstakeTime", "type": "uint256" } ], - "name": "Withdrawn", + "name": "RelayRemoved", "type": "event", "__signatureData": { - "method": "Withdrawn(address,address,uint256)", - "signature": "d1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb", + "method": "RelayRemoved(address,uint256)", + "signature": "5490afc1d818789c8b3d5d63bce3d2a3327d0bba4efb5a7751f783dc977d7d11", "index": [ - true, true, false ], - "indexed": 2, - "eventSignature": "0e2d030650760d3871e054ffa9c47786dcf177cc303105369a8e9f342c8b029d" + "indexed": 1, + "eventSignature": "76d3e427a904ff3e9d6e769ffdc8d45d9a15ccc490df2b6ef20d714d469b478a" } }, { @@ -10002,44 +12563,35 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "relay", "type": "address" }, - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, { "indexed": false, - "name": "selector", - "type": "bytes4" + "internalType": "uint256", + "name": "stake", + "type": "uint256" }, { "indexed": false, - "name": "reason", + "internalType": "uint256", + "name": "unstakeDelay", "type": "uint256" } ], - "name": "CanRelayFailed", + "name": "Staked", "type": "event", - "__signatureData": { - "method": "CanRelayFailed(address,address,address,bytes4,uint256)", - "signature": "afb5afd6d1c2e8ffbfb480e674a169f493ece0b22658d4f4484e7334f0241e22", + "__signatureData": { + "method": "Staked(address,uint256,uint256)", + "signature": "1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee90", "index": [ - true, - true, true, false, false ], - "indexed": 3, - "eventSignature": "6246ddc1cc93e5818d257ca595114ddd2fd834dd28e80d8fadf4128b1b50b817" + "indexed": 1, + "eventSignature": "866a84c3f9aeb093e2ed8da68f59fec2c0971ee8b15c04c6eb15637f24547150" } }, { @@ -10047,31 +12599,37 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "relay", "type": "address" }, { "indexed": true, + "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, + "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, + "internalType": "bytes4", "name": "selector", "type": "bytes4" }, { "indexed": false, + "internalType": "enum IRelayHub.RelayCallStatus", "name": "status", "type": "uint8" }, { "indexed": false, + "internalType": "uint256", "name": "charge", "type": "uint256" } @@ -10098,32 +12656,28 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "relay", "type": "address" }, { "indexed": false, - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "name": "amount", + "internalType": "uint256", + "name": "stake", "type": "uint256" } ], - "name": "Penalized", + "name": "Unstaked", "type": "event", "__signatureData": { - "method": "Penalized(address,address,uint256)", - "signature": "b0595266ccec357806b2691f348b128209f1060a0bda4f5c95f7090730351ff8", + "method": "Unstaked(address,uint256)", + "signature": "0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f75", "index": [ true, - false, false ], "indexed": 1, - "eventSignature": "15f5b18190245966e1819276c43b6197a82443a6934cafb8dc5e3dd2be1bba5b" + "eventSignature": "7b0523b2f18848528150d0f26cee4fca3ed681a33b92b5024efd04a83cf76c54" } }, { @@ -10131,50 +12685,35 @@ "inputs": [ { "indexed": true, - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "name": "from", + "internalType": "address", + "name": "account", "type": "address" }, { "indexed": true, - "name": "to", + "internalType": "address", + "name": "dest", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "amount", "type": "uint256" - }, - { - "indexed": false, - "name": "data", - "type": "bytes" - }, - { - "indexed": false, - "name": "operatorData", - "type": "bytes" } ], - "name": "Sent", + "name": "Withdrawn", "type": "event", "__signatureData": { - "method": "Sent(address,address,address,uint256,bytes,bytes)", - "signature": "06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987", + "method": "Withdrawn(address,address,uint256)", + "signature": "d1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb", "index": [ true, true, - true, - false, - false, false ], - "indexed": 3, - "eventSignature": "79a60acac19908bc2b59dffabec387f74ee66e75ba7dc244aa9b4bd344c7238d" + "indexed": 2, + "eventSignature": "0e2d030650760d3871e054ffa9c47786dcf177cc303105369a8e9f342c8b029d" } }, { @@ -10182,44 +12721,28 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, - "name": "to", + "internalType": "address", + "name": "tokenHolder", "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "data", - "type": "bytes" - }, - { - "indexed": false, - "name": "operatorData", - "type": "bytes" } ], - "name": "Minted", + "name": "AuthorizedOperator", "type": "event", "__signatureData": { - "method": "Minted(address,address,uint256,bytes,bytes)", - "signature": "2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d", + "method": "AuthorizedOperator(address,address)", + "signature": "f4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f9", "index": [ true, - true, - false, - false, - false + true ], "indexed": 2, - "eventSignature": "1de3dae660a62c3814b302291e4855fce531cc3976d3a1aa413df1f10af99545" + "eventSignature": "675fb7391622d0d5bc83dff94c6200ee5e8fbc9070d5be471897305f97d69594" } }, { @@ -10227,26 +12750,31 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, + "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, + "internalType": "bytes", "name": "data", "type": "bytes" }, { "indexed": false, + "internalType": "bytes", "name": "operatorData", "type": "bytes" } @@ -10272,26 +12800,49 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, - "name": "tokenHolder", + "internalType": "address", + "name": "to", "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "operatorData", + "type": "bytes" } ], - "name": "AuthorizedOperator", + "name": "Minted", "type": "event", "__signatureData": { - "method": "AuthorizedOperator(address,address)", - "signature": "f4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f9", + "method": "Minted(address,address,uint256,bytes,bytes)", + "signature": "2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d", "index": [ true, - true + true, + false, + false, + false ], "indexed": 2, - "eventSignature": "675fb7391622d0d5bc83dff94c6200ee5e8fbc9070d5be471897305f97d69594" + "eventSignature": "1de3dae660a62c3814b302291e4855fce531cc3976d3a1aa413df1f10af99545" } }, { @@ -10299,11 +12850,13 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, + "internalType": "address", "name": "tokenHolder", "type": "address" } @@ -10326,32 +12879,56 @@ "inputs": [ { "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, + "internalType": "address", "name": "to", "type": "address" }, { - "indexed": true, - "name": "tokenId", + "indexed": false, + "internalType": "uint256", + "name": "amount", "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "operatorData", + "type": "bytes" } ], - "name": "Transfer", + "name": "Sent", "type": "event", "__signatureData": { - "method": "Transfer(address,address,uint256)", - "signature": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "method": "Sent(address,address,address,uint256,bytes,bytes)", + "signature": "06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987", "index": [ true, true, - true + true, + false, + false, + false ], "indexed": 3, - "eventSignature": "effeccbe276a467191ec04459969a28b1271df483a196057d8091645c1501cfd" + "eventSignature": "79a60acac19908bc2b59dffabec387f74ee66e75ba7dc244aa9b4bd344c7238d" } }, { @@ -10359,16 +12936,19 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, + "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, + "internalType": "uint256", "name": "tokenId", "type": "uint256" } @@ -10392,16 +12972,19 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, + "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, + "internalType": "bool", "name": "approved", "type": "bool" } @@ -10425,16 +13008,55 @@ "inputs": [ { "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event", + "__signatureData": { + "method": "Transfer(address,address,uint256)", + "signature": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "index": [ + true, + true, + true + ], + "indexed": 3, + "eventSignature": "effeccbe276a467191ec04459969a28b1271df483a196057d8091645c1501cfd" + } + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, + "internalType": "bytes32", "name": "interfaceHash", "type": "bytes32" }, { "indexed": true, + "internalType": "address", "name": "implementer", "type": "address" } @@ -10458,11 +13080,13 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, + "internalType": "address", "name": "newManager", "type": "address" } @@ -10498,11 +13122,13 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "oldRelayHub", "type": "address" }, { "indexed": true, + "internalType": "address", "name": "newRelayHub", "type": "address" } @@ -10525,37 +13151,19 @@ "inputs": [ { "indexed": false, - "name": "sender", - "type": "address" - } - ], - "name": "Sender", - "type": "event", - "__signatureData": { - "method": "Sender(address)", - "signature": "d6558c3ed910d959271054471fd1c326679d9fece99c5091b00ed89627cf2bfc", - "index": [ - false - ], - "indexed": 0, - "eventSignature": "175a6649fb5c0c27c88482127893f59c0b7faee84ad3d90ec9f0d83811d2c3e8" - } - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, + "internalType": "bytes", "name": "data", "type": "bytes" }, { "indexed": false, + "internalType": "uint256", "name": "integerValue", "type": "uint256" }, { "indexed": false, + "internalType": "string", "name": "stringValue", "type": "string" } @@ -10579,6 +13187,29 @@ "inputs": [ { "indexed": false, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "Sender", + "type": "event", + "__signatureData": { + "method": "Sender(address)", + "signature": "d6558c3ed910d959271054471fd1c326679d9fece99c5091b00ed89627cf2bfc", + "index": [ + false + ], + "indexed": 0, + "eventSignature": "175a6649fb5c0c27c88482127893f59c0b7faee84ad3d90ec9f0d83811d2c3e8" + } + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", "name": "senderBalance", "type": "uint256" } @@ -10600,55 +13231,86 @@ "inputs": [ { "indexed": false, + "internalType": "bool", + "name": "result", + "type": "bool" + } + ], + "name": "TransactionResult", + "type": "event", + "__signatureData": { + "method": "TransactionResult(bool)", + "signature": "5f2d66b608a7b4bfa43b7e9ba385022741152c97499b8a8abcd5c27258417b5a", + "index": [ + false + ], + "indexed": 0, + "eventSignature": "c50ffabeccb2a0503b5cfc61ec812616a1749e58efbc7c86206787021b0253a8" + } + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, + "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, + "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, + "internalType": "bytes", "name": "data", "type": "bytes" }, { "indexed": false, + "internalType": "bytes", "name": "operatorData", "type": "bytes" }, { "indexed": false, + "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "fromBalance", "type": "uint256" }, { "indexed": false, + "internalType": "uint256", "name": "toBalance", "type": "uint256" } ], - "name": "TokensToSendCalled", + "name": "TokensReceivedCalled", "type": "event", "__signatureData": { - "method": "TokensToSendCalled(address,address,address,uint256,bytes,bytes,address,uint256,uint256)", - "signature": "aa3e88aca472e90221daf7d3d601abafb62b120319089d7a2c2f63588da85529", + "method": "TokensReceivedCalled(address,address,address,uint256,bytes,bytes,address,uint256,uint256)", + "signature": "47e915878c47f3ec4d7ff646a2becb229f64fd2abe4d2b5e2bb4275b0cf50d4e", "index": [ false, false, @@ -10661,7 +13323,7 @@ false ], "indexed": 0, - "eventSignature": "47f470940c78bab452bbad82488a53936f27c3ae1c870c85062675ebfbdd1e70" + "eventSignature": "68c6768a2b60c20a4720c4df07bfa1e2ae8048b06ec535671e097366a2cf4b71" } }, { @@ -10669,55 +13331,64 @@ "inputs": [ { "indexed": false, + "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, + "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, + "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, + "internalType": "bytes", "name": "data", "type": "bytes" }, { "indexed": false, + "internalType": "bytes", "name": "operatorData", "type": "bytes" }, { "indexed": false, + "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "fromBalance", "type": "uint256" }, { "indexed": false, + "internalType": "uint256", "name": "toBalance", "type": "uint256" } ], - "name": "TokensReceivedCalled", + "name": "TokensToSendCalled", "type": "event", "__signatureData": { - "method": "TokensReceivedCalled(address,address,address,uint256,bytes,bytes,address,uint256,uint256)", - "signature": "47e915878c47f3ec4d7ff646a2becb229f64fd2abe4d2b5e2bb4275b0cf50d4e", + "method": "TokensToSendCalled(address,address,address,uint256,bytes,bytes,address,uint256,uint256)", + "signature": "aa3e88aca472e90221daf7d3d601abafb62b120319089d7a2c2f63588da85529", "index": [ false, false, @@ -10730,7 +13401,7 @@ false ], "indexed": 0, - "eventSignature": "68c6768a2b60c20a4720c4df07bfa1e2ae8048b06ec535671e097366a2cf4b71" + "eventSignature": "47f470940c78bab452bbad82488a53936f27c3ae1c870c85062675ebfbdd1e70" } }, { @@ -10738,26 +13409,31 @@ "inputs": [ { "indexed": false, + "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, + "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, + "internalType": "bytes", "name": "data", "type": "bytes" }, { "indexed": false, + "internalType": "uint256", "name": "gas", "type": "uint256" } @@ -10783,6 +13459,7 @@ "inputs": [ { "indexed": false, + "internalType": "uint256", "name": "id", "type": "uint256" } diff --git a/src/lib/compiled_abi.json b/src/lib/compiled_abi.json index 7c05686..5313c4e 100755 --- a/src/lib/compiled_abi.json +++ b/src/lib/compiled_abi.json @@ -1,31 +1,11 @@ [ - { - "constant": false, - "inputs": [ - { - "name": "recipient", - "type": "address" - } - ], - "name": "transferPrimary", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "__signatureData": { - "method": "transferPrimary(address)", - "signature": "2348238cf135e5fa7570fa30dc67d8f7f40e6d9ebd999f20eb992f9685ee8bed", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, { "constant": true, "inputs": [], "name": "primary", "outputs": [ { + "internalType": "address", "name": "", "type": "address" } @@ -45,14 +25,17 @@ "constant": false, "inputs": [ { + "internalType": "contract IERC20", "name": "token", "type": "address" }, { + "internalType": "address", "name": "to", "type": "address" }, { + "internalType": "uint256", "name": "amount", "type": "uint256" } @@ -71,51 +54,51 @@ } }, { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ + "constant": false, + "inputs": [ { - "name": "", - "type": "string" + "internalType": "address", + "name": "recipient", + "type": "address" } ], + "name": "transferPrimary", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "name()", - "signature": "06fdde0383f15d582d1a74511486c9ddf862a882fb7904b3d9fe9b8b8e58a796", + "method": "transferPrimary(address)", + "signature": "2348238cf135e5fa7570fa30dc67d8f7f40e6d9ebd999f20eb992f9685ee8bed", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, "inputs": [ { - "name": "spender", - "type": "address" + "internalType": "string", + "name": "name", + "type": "string" }, { - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ + "internalType": "string", + "name": "symbol", + "type": "string" + }, { - "name": "", - "type": "bool" + "internalType": "uint8", + "name": "decimals", + "type": "uint8" } ], "payable": false, "stateMutability": "nonpayable", - "type": "function", + "type": "constructor", "__signatureData": { - "method": "approve(address,uint256)", - "signature": "095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", + "method": null, + "signature": null, "index": [], "indexed": 0, "eventSignature": null @@ -123,41 +106,32 @@ }, { "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ + "inputs": [ { - "name": "", - "type": "uint256" + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" } ], - "payable": false, - "stateMutability": "view", - "type": "function", - "__signatureData": { - "method": "totalSupply()", - "signature": "18160ddd7f15c72528c2f94fd8dfe3c8d5aa26e2c50c7d81f4bc7bee8d4b7932", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": true, - "inputs": [], - "name": "decimals", + "name": "allowance", "outputs": [ { + "internalType": "uint256", "name": "", - "type": "uint8" + "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "decimals()", - "signature": "313ce567add4d438edf58b94ff345d7d38c45b17dfc0f947988d7819dca364f9", + "method": "allowance(address,address)", + "signature": "dd62ed3e90e97b3d417db9c0c7522647811bafca5afc6694f143588d255fdfb4", "index": [], "indexed": 0, "eventSignature": null @@ -167,17 +141,20 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "spender", "type": "address" }, { - "name": "addedValue", + "internalType": "uint256", + "name": "amount", "type": "uint256" } ], - "name": "increaseAllowance", + "name": "approve", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -186,8 +163,8 @@ "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "increaseAllowance(address,uint256)", - "signature": "39509351d3325647dde3fdd3c8b249adfe89ef4f16d76d83768e6df7a5cd81d6", + "method": "approve(address,uint256)", + "signature": "095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", "index": [], "indexed": 0, "eventSignature": null @@ -197,6 +174,7 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } @@ -204,6 +182,7 @@ "name": "balanceOf", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -222,19 +201,20 @@ { "constant": true, "inputs": [], - "name": "symbol", + "name": "decimals", "outputs": [ { + "internalType": "uint8", "name": "", - "type": "string" + "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "symbol()", - "signature": "95d89b41e2f5f391a79ec54e9d87c79d6e777c63e32c28da95b4e9e4a79250ec", + "method": "decimals()", + "signature": "313ce567add4d438edf58b94ff345d7d38c45b17dfc0f947988d7819dca364f9", "index": [], "indexed": 0, "eventSignature": null @@ -244,10 +224,12 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "spender", "type": "address" }, { + "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } @@ -255,6 +237,7 @@ "name": "decreaseAllowance", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -274,17 +257,20 @@ "constant": false, "inputs": [ { - "name": "recipient", + "internalType": "address", + "name": "spender", "type": "address" }, { - "name": "amount", + "internalType": "uint256", + "name": "addedValue", "type": "uint256" } ], - "name": "transfer", + "name": "increaseAllowance", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -293,59 +279,79 @@ "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "transfer(address,uint256)", - "signature": "a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "method": "increaseAllowance(address,uint256)", + "signature": "39509351d3325647dde3fdd3c8b249adfe89ef4f16d76d83768e6df7a5cd81d6", "index": [], "indexed": 0, "eventSignature": null } }, { + "constant": false, "inputs": [ { - "name": "name", - "type": "string" - }, - { - "name": "symbol", - "type": "string" + "internalType": "address", + "name": "account", + "type": "address" }, { - "name": "decimals", - "type": "uint8" + "internalType": "uint256", + "name": "amount", + "type": "uint256" } ], + "name": "mint", + "outputs": [], "payable": false, "stateMutability": "nonpayable", - "type": "constructor", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "mint(address,uint256)", + "signature": "40c10f19c047ae7dfa66d6312b683d2ea3dfbcb4159e96b967c5f4b0a86f2842", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, - "inputs": [ + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ { - "name": "account", - "type": "address" - }, + "internalType": "string", + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "name()", + "signature": "06fdde0383f15d582d1a74511486c9ddf862a882fb7904b3d9fe9b8b8e58a796", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ { - "name": "amount", - "type": "uint256" + "internalType": "string", + "name": "", + "type": "string" } ], - "name": "mint", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "mint(address,uint256)", - "signature": "40c10f19c047ae7dfa66d6312b683d2ea3dfbcb4159e96b967c5f4b0a86f2842", + "method": "symbol()", + "signature": "95d89b41e2f5f391a79ec54e9d87c79d6e777c63e32c28da95b4e9e4a79250ec", "index": [], "indexed": 0, "eventSignature": null @@ -353,29 +359,54 @@ }, { "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "totalSupply()", + "signature": "18160ddd7f15c72528c2f94fd8dfe3c8d5aa26e2c50c7d81f4bc7bee8d4b7932", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, "inputs": [ { - "name": "owner", + "internalType": "address", + "name": "recipient", "type": "address" }, { - "name": "spender", - "type": "address" + "internalType": "uint256", + "name": "amount", + "type": "uint256" } ], - "name": "allowance", + "name": "transfer", "outputs": [ { + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "allowance(address,address)", - "signature": "dd62ed3e90e97b3d417db9c0c7522647811bafca5afc6694f143588d255fdfb4", + "method": "transfer(address,uint256)", + "signature": "a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", "index": [], "indexed": 0, "eventSignature": null @@ -385,14 +416,17 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "sender", "type": "address" }, { + "internalType": "address", "name": "recipient", "type": "address" }, { + "internalType": "uint256", "name": "amount", "type": "uint256" } @@ -400,6 +434,7 @@ "name": "transferFrom", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -419,18 +454,19 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } ], - "name": "addWhitelisted", + "name": "addWhitelistAdmin", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "addWhitelisted(address)", - "signature": "10154bad5f8b58b5821c989aa3a19216f4f0f6a424c9d495316ed99eabc9d113", + "method": "addWhitelistAdmin(address)", + "signature": "7362d9c8efb3b4fda01af82f687b8894972c34de57e88a1ad22687e2bf5986ba", "index": [], "indexed": 0, "eventSignature": null @@ -440,18 +476,19 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } ], - "name": "removeWhitelisted", + "name": "addWhitelisted", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "removeWhitelisted(address)", - "signature": "291d954951cd7ba0ec12a5dcf299b5a560d33289ca3ac9705bd27b3d3dd58cc5", + "method": "addWhitelisted(address)", + "signature": "10154bad5f8b58b5821c989aa3a19216f4f0f6a424c9d495316ed99eabc9d113", "index": [], "indexed": 0, "eventSignature": null @@ -461,13 +498,15 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } ], - "name": "isWhitelisted", + "name": "isWhitelistAdmin", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -476,45 +515,8 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "isWhitelisted(address)", - "signature": "3af32abf6dd58f324dd88f0cedc69529dd503406094dc24662635caa70d9a021", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": false, - "inputs": [], - "name": "renounceWhitelistAdmin", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "__signatureData": { - "method": "renounceWhitelistAdmin()", - "signature": "4c5a628c0a9c4a8806d71b7d5e87a7de26f71c356aff7925d80a15cbe14f0cbb", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": false, - "inputs": [ - { - "name": "account", - "type": "address" - } - ], - "name": "addWhitelistAdmin", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "__signatureData": { - "method": "addWhitelistAdmin(address)", - "signature": "7362d9c8efb3b4fda01af82f687b8894972c34de57e88a1ad22687e2bf5986ba", + "method": "isWhitelistAdmin(address)", + "signature": "bb5f747b7234573d42296873730b7cd00c26493ecd02a4763c67c0c7a025f6a1", "index": [], "indexed": 0, "eventSignature": null @@ -524,13 +526,15 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } ], - "name": "isWhitelistAdmin", + "name": "isWhitelisted", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -539,24 +543,8 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "isWhitelistAdmin(address)", - "signature": "bb5f747b7234573d42296873730b7cd00c26493ecd02a4763c67c0c7a025f6a1", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": false, - "inputs": [], - "name": "renounceWhitelisted", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "__signatureData": { - "method": "renounceWhitelisted()", - "signature": "d6cd9473b95d75ff40cd7a5b8c3bc34d17cdc7c75b5a9c2c4c6744beff129e46", + "method": "isWhitelisted(address)", + "signature": "3af32abf6dd58f324dd88f0cedc69529dd503406094dc24662635caa70d9a021", "index": [], "indexed": 0, "eventSignature": null @@ -579,63 +567,22 @@ } }, { - "constant": true, - "inputs": [], - "name": "rate", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "__signatureData": { - "method": "rate()", - "signature": "2c4e722ec6511e89f25f244e462d7b9552e4a1e9b6043fd124a874a67f5c804f", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": true, - "inputs": [], - "name": "weiRaised", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "__signatureData": { - "method": "weiRaised()", - "signature": "4042b66fe5f2644ad71dd4e339299721a4fb92741a7427e3a9e94931da295cca", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": true, - "inputs": [], - "name": "wallet", - "outputs": [ + "constant": false, + "inputs": [ { - "name": "", + "internalType": "address", + "name": "account", "type": "address" } ], + "name": "removeWhitelisted", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "wallet()", - "signature": "521eb2736f64b43875f0b44fdc29304541dcc3cd844822ef0697470d90c3e124", + "method": "removeWhitelisted(address)", + "signature": "291d954951cd7ba0ec12a5dcf299b5a560d33289ca3ac9705bd27b3d3dd58cc5", "index": [], "indexed": 0, "eventSignature": null @@ -643,41 +590,31 @@ }, { "constant": false, - "inputs": [ - { - "name": "beneficiary", - "type": "address" - } - ], - "name": "buyTokens", + "inputs": [], + "name": "renounceWhitelistAdmin", "outputs": [], - "payable": true, - "stateMutability": "payable", + "payable": false, + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "buyTokens(address)", - "signature": "ec8ac4d8ebf67e3f8d982a81442192b39118de75f74dd3987cc13070ca1c53e0", + "method": "renounceWhitelistAdmin()", + "signature": "4c5a628c0a9c4a8806d71b7d5e87a7de26f71c356aff7925d80a15cbe14f0cbb", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [], - "name": "token", - "outputs": [ - { - "name": "", - "type": "address" - } - ], + "name": "renounceWhitelisted", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "token()", - "signature": "fc0c546a8dce9d6e9b97c086302918c9106d97a17809f6bcacfe02124763cb39", + "method": "renounceWhitelisted()", + "signature": "d6cd9473b95d75ff40cd7a5b8c3bc34d17cdc7c75b5a9c2c4c6744beff129e46", "index": [], "indexed": 0, "eventSignature": null @@ -686,14 +623,17 @@ { "inputs": [ { + "internalType": "uint256", "name": "_rate", "type": "uint256" }, { + "internalType": "address payable", "name": "_wallet", "type": "address" }, { + "internalType": "contract IERC20", "name": "_token", "type": "address" } @@ -713,18 +653,19 @@ "constant": false, "inputs": [ { - "name": "account", + "internalType": "address", + "name": "beneficiary", "type": "address" } ], - "name": "removeWhitelistAdmin", + "name": "buyTokens", "outputs": [], - "payable": false, - "stateMutability": "nonpayable", + "payable": true, + "stateMutability": "payable", "type": "function", "__signatureData": { - "method": "removeWhitelistAdmin(address)", - "signature": "6897e9747da0ffb9f264b876f5c2b2227ac56f9fdaa6c5d73f8a8ad061690be5", + "method": "buyTokens(address)", + "signature": "ec8ac4d8ebf67e3f8d982a81442192b39118de75f74dd3987cc13070ca1c53e0", "index": [], "indexed": 0, "eventSignature": null @@ -733,43 +674,64 @@ { "constant": true, "inputs": [], - "name": "onlyWhitelistAdminMock", - "outputs": [], + "name": "rate", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "onlyWhitelistAdminMock()", - "signature": "564c74a37341f8fc0183d333b61f1340909400bf0ae5f30577d4b88b3da10175", + "method": "rate()", + "signature": "2c4e722ec6511e89f25f244e462d7b9552e4a1e9b6043fd124a874a67f5c804f", "index": [], "indexed": 0, "eventSignature": null } }, { + "constant": true, "inputs": [], + "name": "token", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], "payable": false, - "stateMutability": "nonpayable", - "type": "constructor", + "stateMutability": "view", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "token()", + "signature": "fc0c546a8dce9d6e9b97c086302918c9106d97a17809f6bcacfe02124763cb39", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [], - "name": "renounceOwnership", - "outputs": [], + "name": "wallet", + "outputs": [ + { + "internalType": "address payable", + "name": "", + "type": "address" + } + ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "renounceOwnership()", - "signature": "715018a616b5f2044428f6fadb7deef4ce9ca76ef60ea57978964ad137bbe7ae", + "method": "wallet()", + "signature": "521eb2736f64b43875f0b44fdc29304541dcc3cd844822ef0697470d90c3e124", "index": [], "indexed": 0, "eventSignature": null @@ -778,19 +740,20 @@ { "constant": true, "inputs": [], - "name": "owner", + "name": "weiRaised", "outputs": [ { + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "owner()", - "signature": "8da5cb5b36e7f68c1d2e56001220cdbdd3ba2616072f718acfda4a06441a807d", + "method": "weiRaised()", + "signature": "4042b66fe5f2644ad71dd4e339299721a4fb92741a7427e3a9e94931da295cca", "index": [], "indexed": 0, "eventSignature": null @@ -799,19 +762,14 @@ { "constant": true, "inputs": [], - "name": "isOwner", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], + "name": "onlyWhitelistAdminMock", + "outputs": [], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "isOwner()", - "signature": "8f32d59b339b0965093e9a53b00f4400c41d72f026df85c0beaa1d49d97802ef", + "method": "onlyWhitelistAdminMock()", + "signature": "564c74a37341f8fc0183d333b61f1340909400bf0ae5f30577d4b88b3da10175", "index": [], "indexed": 0, "eventSignature": null @@ -821,18 +779,32 @@ "constant": false, "inputs": [ { - "name": "newOwner", + "internalType": "address", + "name": "account", "type": "address" } ], - "name": "transferOwnership", + "name": "removeWhitelistAdmin", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "transferOwnership(address)", - "signature": "f2fde38b092330466c661fc723d5289b90272a3e580e3187d1d7ef788506c557", + "method": "removeWhitelistAdmin(address)", + "signature": "6897e9747da0ffb9f264b876f5c2b2227ac56f9fdaa6c5d73f8a8ad061690be5", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor", + "__signatureData": { + "method": null, + "signature": null, "index": [], "indexed": 0, "eventSignature": null @@ -841,22 +813,27 @@ { "inputs": [ { + "internalType": "address", "name": "beneficiary", "type": "address" }, { + "internalType": "uint256", "name": "start", "type": "uint256" }, { + "internalType": "uint256", "name": "cliffDuration", "type": "uint256" }, { + "internalType": "uint256", "name": "duration", "type": "uint256" }, { + "internalType": "bool", "name": "revocable", "type": "bool" } @@ -878,6 +855,7 @@ "name": "beneficiary", "outputs": [ { + "internalType": "address", "name": "", "type": "address" } @@ -899,6 +877,7 @@ "name": "cliff", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -917,9 +896,10 @@ { "constant": true, "inputs": [], - "name": "start", + "name": "duration", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -928,8 +908,8 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "start()", - "signature": "be9a655586dceb82dfa0af992b5d8ae7fa45053cb7fd6f141f541da7572978c7", + "method": "duration()", + "signature": "0fb5a6b40d15bfee72e58fd4a3fbc0824854616197205c3f48946b53286fd328", "index": [], "indexed": 0, "eventSignature": null @@ -938,19 +918,20 @@ { "constant": true, "inputs": [], - "name": "duration", + "name": "isOwner", "outputs": [ { + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "duration()", - "signature": "0fb5a6b40d15bfee72e58fd4a3fbc0824854616197205c3f48946b53286fd328", + "method": "isOwner()", + "signature": "8f32d59b339b0965093e9a53b00f4400c41d72f026df85c0beaa1d49d97802ef", "index": [], "indexed": 0, "eventSignature": null @@ -959,20 +940,43 @@ { "constant": true, "inputs": [], - "name": "revocable", + "name": "owner", "outputs": [ { + "internalType": "address", "name": "", - "type": "bool" + "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "revocable()", - "signature": "872a78104060b2611ad651114462af633b90f4846ddf96ef452cc3abaadbef00", - "index": [], + "method": "owner()", + "signature": "8da5cb5b36e7f68c1d2e56001220cdbdd3ba2616072f718acfda4a06441a807d", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + } + ], + "name": "release", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "release(address)", + "signature": "19165587d81f9d3d0d57225d38f5bb5163beb87e4b5fafa3a2f80c53398d9874", + "index": [], "indexed": 0, "eventSignature": null } @@ -981,6 +985,7 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "token", "type": "address" } @@ -988,6 +993,7 @@ "name": "released", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -1003,10 +1009,71 @@ "eventSignature": null } }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "renounceOwnership()", + "signature": "715018a616b5f2044428f6fadb7deef4ce9ca76ef60ea57978964ad137bbe7ae", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "revocable", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "revocable()", + "signature": "872a78104060b2611ad651114462af633b90f4846ddf96ef452cc3abaadbef00", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + } + ], + "name": "revoke", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "revoke(address)", + "signature": "74a8f1037ce3c16c732a634b5b87f893f40cae0feab5bbe0a6e4abb1ec12a744", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, { "constant": true, "inputs": [ { + "internalType": "address", "name": "token", "type": "address" } @@ -1014,6 +1081,7 @@ "name": "revoked", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -1030,21 +1098,22 @@ } }, { - "constant": false, - "inputs": [ + "constant": true, + "inputs": [], + "name": "start", + "outputs": [ { - "name": "token", - "type": "address" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "release", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "release(address)", - "signature": "19165587d81f9d3d0d57225d38f5bb5163beb87e4b5fafa3a2f80c53398d9874", + "method": "start()", + "signature": "be9a655586dceb82dfa0af992b5d8ae7fa45053cb7fd6f141f541da7572978c7", "index": [], "indexed": 0, "eventSignature": null @@ -1054,18 +1123,19 @@ "constant": false, "inputs": [ { - "name": "token", + "internalType": "address", + "name": "newOwner", "type": "address" } ], - "name": "revoke", + "name": "transferOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "revoke(address)", - "signature": "74a8f1037ce3c16c732a634b5b87f893f40cae0feab5bbe0a6e4abb1ec12a744", + "method": "transferOwnership(address)", + "signature": "f2fde38b092330466c661fc723d5289b90272a3e580e3187d1d7ef788506c557", "index": [], "indexed": 0, "eventSignature": null @@ -1074,14 +1144,17 @@ { "inputs": [ { + "internalType": "contract IERC20", "name": "token", "type": "address" }, { + "internalType": "address", "name": "beneficiary", "type": "address" }, { + "internalType": "uint256", "name": "releaseTime", "type": "uint256" } @@ -1097,27 +1170,6 @@ "eventSignature": null } }, - { - "constant": true, - "inputs": [], - "name": "releaseTime", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "__signatureData": { - "method": "releaseTime()", - "signature": "b91d4001c4daa83d4f7294c01ce39818a6bbd35ddb92d3c9ad5b4c783ef2dd86", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, { "constant": false, "inputs": [], @@ -1137,40 +1189,59 @@ { "constant": true, "inputs": [], - "name": "hasClosed", + "name": "releaseTime", "outputs": [ { + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "hasClosed()", - "signature": "1515bc2ba740d068ff684b5917a9ff7f391334e91f6e21d330213abf2fcf5997", + "method": "releaseTime()", + "signature": "b91d4001c4daa83d4f7294c01ce39818a6bbd35ddb92d3c9ad5b4c783ef2dd86", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, - "inputs": [], - "name": "isOpen", - "outputs": [ + "inputs": [ { - "name": "", - "type": "bool" + "internalType": "uint256", + "name": "openingTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "closingTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rate", + "type": "uint256" + }, + { + "internalType": "address payable", + "name": "wallet", + "type": "address" + }, + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" } ], "payable": false, - "stateMutability": "view", - "type": "function", + "stateMutability": "nonpayable", + "type": "constructor", "__signatureData": { - "method": "isOpen()", - "signature": "47535d7bce5fe30a985aaa3abea3945f910984e480fd44a01ec881dd75a69c53", + "method": null, + "signature": null, "index": [], "indexed": 0, "eventSignature": null @@ -1182,6 +1253,7 @@ "name": "closingTime", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -1197,77 +1269,89 @@ "eventSignature": null } }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "closingTime", + "type": "uint256" + } + ], + "name": "extendTime", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "extendTime(uint256)", + "signature": "a27aebbc8e1d8000e670bd0d5c45d68c88e22e90f018df5744507d0702e1d789", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, { "constant": true, "inputs": [], - "name": "openingTime", + "name": "hasClosed", "outputs": [ { + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "openingTime()", - "signature": "b7a8807ce18354d14128599c1de68278dae2b3f112ab7835c14880c3d10df567", + "method": "hasClosed()", + "signature": "1515bc2ba740d068ff684b5917a9ff7f391334e91f6e21d330213abf2fcf5997", "index": [], "indexed": 0, "eventSignature": null } }, { - "inputs": [ - { - "name": "openingTime", - "type": "uint256" - }, - { - "name": "closingTime", - "type": "uint256" - }, - { - "name": "rate", - "type": "uint256" - }, - { - "name": "wallet", - "type": "address" - }, + "constant": true, + "inputs": [], + "name": "isOpen", + "outputs": [ { - "name": "token", - "type": "address" + "internalType": "bool", + "name": "", + "type": "bool" } ], "payable": false, - "stateMutability": "nonpayable", - "type": "constructor", + "stateMutability": "view", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "isOpen()", + "signature": "47535d7bce5fe30a985aaa3abea3945f910984e480fd44a01ec881dd75a69c53", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, - "inputs": [ + "constant": true, + "inputs": [], + "name": "openingTime", + "outputs": [ { - "name": "closingTime", + "internalType": "uint256", + "name": "", "type": "uint256" } ], - "name": "extendTime", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "extendTime(uint256)", - "signature": "a27aebbc8e1d8000e670bd0d5c45d68c88e22e90f018df5744507d0702e1d789", + "method": "openingTime()", + "signature": "b7a8807ce18354d14128599c1de68278dae2b3f112ab7835c14880c3d10df567", "index": [], "indexed": 0, "eventSignature": null @@ -1276,10 +1360,12 @@ { "inputs": [ { + "internalType": "uint256", "name": "openingTime", "type": "uint256" }, { + "internalType": "uint256", "name": "closingTime", "type": "uint256" } @@ -1301,6 +1387,7 @@ "name": "INTERFACE_ID_ERC165", "outputs": [ { + "internalType": "bytes4", "name": "", "type": "bytes4" } @@ -1320,6 +1407,7 @@ "constant": true, "inputs": [ { + "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } @@ -1327,6 +1415,7 @@ "name": "supportsInterface", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -1346,6 +1435,7 @@ "constant": true, "inputs": [ { + "internalType": "uint256", "name": "value", "type": "uint256" } @@ -1353,6 +1443,7 @@ "name": "fromUint256", "outputs": [ { + "internalType": "string", "name": "", "type": "string" } @@ -1369,63 +1460,66 @@ } }, { - "constant": true, + "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } ], - "name": "isSigner", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], + "name": "addSigner", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "isSigner(address)", - "signature": "7df73e27995ff52c325122d47c8dcb5955711696cc862e8e9fe732521a2ca222", + "method": "addSigner(address)", + "signature": "eb12d61ed0d380b10fb1d0a0a39f088010b2fbd5ce83f19ba4758b13c0558d17", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, - "inputs": [], - "name": "renounceSigner", - "outputs": [], + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "isSigner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "renounceSigner()", - "signature": "e5c8b03d019369869471d1933fd14f2ab233bc1095eccc08bb7dbbb204604fe4", + "method": "isSigner(address)", + "signature": "7df73e27995ff52c325122d47c8dcb5955711696cc862e8e9fe732521a2ca222", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, - "inputs": [ - { - "name": "account", - "type": "address" - } - ], - "name": "addSigner", + "constant": true, + "inputs": [], + "name": "onlySignerMock", "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "addSigner(address)", - "signature": "eb12d61ed0d380b10fb1d0a0a39f088010b2fbd5ce83f19ba4758b13c0558d17", + "method": "onlySignerMock()", + "signature": "b44e2ab953337bf642122bbdd26b6a4c6796c98b1f047441f438bb4dd15dbc9d", "index": [], "indexed": 0, "eventSignature": null @@ -1435,6 +1529,7 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } @@ -1453,16 +1548,16 @@ } }, { - "constant": true, + "constant": false, "inputs": [], - "name": "onlySignerMock", + "name": "renounceSigner", "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "onlySignerMock()", - "signature": "b44e2ab953337bf642122bbdd26b6a4c6796c98b1f047441f438bb4dd15dbc9d", + "method": "renounceSigner()", + "signature": "e5c8b03d019369869471d1933fd14f2ab233bc1095eccc08bb7dbbb204604fe4", "index": [], "indexed": 0, "eventSignature": null @@ -1472,17 +1567,20 @@ "constant": true, "inputs": [ { + "internalType": "int256", "name": "a", "type": "int256" }, { + "internalType": "int256", "name": "b", "type": "int256" } ], - "name": "mul", + "name": "add", "outputs": [ { + "internalType": "int256", "name": "", "type": "int256" } @@ -1491,8 +1589,8 @@ "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "mul(int256,int256)", - "signature": "bbe93d91b114db244bee40cafeeaae72456bbb2f92985a1729ce3d574fc8ef0e", + "method": "add(int256,int256)", + "signature": "a5f3c23ba07e6c3b914d9273b1ef72b2e6620dbfe328f76b4725526445930fc9", "index": [], "indexed": 0, "eventSignature": null @@ -1502,10 +1600,12 @@ "constant": true, "inputs": [ { + "internalType": "int256", "name": "a", "type": "int256" }, { + "internalType": "int256", "name": "b", "type": "int256" } @@ -1513,6 +1613,7 @@ "name": "div", "outputs": [ { + "internalType": "int256", "name": "", "type": "int256" } @@ -1532,17 +1633,20 @@ "constant": true, "inputs": [ { + "internalType": "int256", "name": "a", "type": "int256" }, { + "internalType": "int256", "name": "b", "type": "int256" } ], - "name": "sub", + "name": "mul", "outputs": [ { + "internalType": "int256", "name": "", "type": "int256" } @@ -1551,8 +1655,8 @@ "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "sub(int256,int256)", - "signature": "adefc37b172bf21b20e90b531fd12a315745366e9f3932bdb3ed5a4c002e45e0", + "method": "mul(int256,int256)", + "signature": "bbe93d91b114db244bee40cafeeaae72456bbb2f92985a1729ce3d574fc8ef0e", "index": [], "indexed": 0, "eventSignature": null @@ -1562,17 +1666,20 @@ "constant": true, "inputs": [ { + "internalType": "int256", "name": "a", "type": "int256" }, { + "internalType": "int256", "name": "b", "type": "int256" } ], - "name": "add", + "name": "sub", "outputs": [ { + "internalType": "int256", "name": "", "type": "int256" } @@ -1581,8 +1688,8 @@ "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "add(int256,int256)", - "signature": "a5f3c23ba07e6c3b914d9273b1ef72b2e6620dbfe328f76b4725526445930fc9", + "method": "sub(int256,int256)", + "signature": "adefc37b172bf21b20e90b531fd12a315745366e9f3932bdb3ed5a4c002e45e0", "index": [], "indexed": 0, "eventSignature": null @@ -1608,27 +1715,47 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" - }, + } + ], + "name": "addMinter", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "addMinter(address)", + "signature": "983b2d560bdd6b422e26073d9516b4646e2f1008810070c0d32b3a79aaa7bfcb", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ { - "name": "amount", - "type": "uint256" + "internalType": "address", + "name": "account", + "type": "address" } ], - "name": "mint", + "name": "isMinter", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "mint(address,uint256)", - "signature": "40c10f19c047ae7dfa66d6312b683d2ea3dfbcb4159e96b967c5f4b0a86f2842", + "method": "isMinter(address)", + "signature": "aa271e1a9a41b51f5b4e2e4ce717c974174719a5ddc12cee839f0eabbdf42748", "index": [], "indexed": 0, "eventSignature": null @@ -1638,18 +1765,30 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "addMinter", - "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "addMinter(address)", - "signature": "983b2d560bdd6b422e26073d9516b4646e2f1008810070c0d32b3a79aaa7bfcb", + "method": "mint(address,uint256)", + "signature": "40c10f19c047ae7dfa66d6312b683d2ea3dfbcb4159e96b967c5f4b0a86f2842", "index": [], "indexed": 0, "eventSignature": null @@ -1672,26 +1811,49 @@ } }, { - "constant": true, "inputs": [ { - "name": "account", + "internalType": "uint256", + "name": "openingTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "closingTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rate", + "type": "uint256" + }, + { + "internalType": "address payable", + "name": "wallet", "type": "address" - } - ], - "name": "isMinter", - "outputs": [ + }, { - "name": "", - "type": "bool" + "internalType": "uint256", + "name": "cap", + "type": "uint256" + }, + { + "internalType": "contract ERC20Mintable", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "goal", + "type": "uint256" } ], "payable": false, - "stateMutability": "view", - "type": "function", + "stateMutability": "nonpayable", + "type": "constructor", "__signatureData": { - "method": "isMinter(address)", - "signature": "aa271e1a9a41b51f5b4e2e4ce717c974174719a5ddc12cee839f0eabbdf42748", + "method": null, + "signature": null, "index": [], "indexed": 0, "eventSignature": null @@ -1703,6 +1865,7 @@ "name": "cap", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -1721,19 +1884,42 @@ { "constant": true, "inputs": [], - "name": "goal", + "name": "capReached", "outputs": [ { + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "goal()", - "signature": "40193883b14c14dda7eef4dec651b30d3485ba1fdc9225dd408d696a03be91a4", + "method": "capReached()", + "signature": "4f93594559fed5d595e1474bcf0c52eb70b3230bf9fcff5ce2aa0a1df1c2fc9c", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address payable", + "name": "refundee", + "type": "address" + } + ], + "name": "claimRefund", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "claimRefund(address)", + "signature": "bffa55d5aa2ff90554572b1dce591d02b722be50bcfd4c7c58c507d2f080b61b", "index": [], "indexed": 0, "eventSignature": null @@ -1758,9 +1944,10 @@ { "constant": true, "inputs": [], - "name": "capReached", + "name": "finalized", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -1769,8 +1956,8 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "capReached()", - "signature": "4f93594559fed5d595e1474bcf0c52eb70b3230bf9fcff5ce2aa0a1df1c2fc9c", + "method": "finalized()", + "signature": "b3f05b97fdf124cf473a8bb0c51089e7f531c2ee86e7dd8dce89ac30a488f0ab", "index": [], "indexed": 0, "eventSignature": null @@ -1779,19 +1966,20 @@ { "constant": true, "inputs": [], - "name": "goalReached", + "name": "goal", "outputs": [ { + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "goalReached()", - "signature": "7d3d65229eb2e3f47f0aeb7b8f366daefbe13b196c607159fd4cde7eaabfdd7e", + "method": "goal()", + "signature": "40193883b14c14dda7eef4dec651b30d3485ba1fdc9225dd408d696a03be91a4", "index": [], "indexed": 0, "eventSignature": null @@ -1800,9 +1988,10 @@ { "constant": true, "inputs": [], - "name": "finalized", + "name": "goalReached", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -1811,71 +2000,74 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "finalized()", - "signature": "b3f05b97fdf124cf473a8bb0c51089e7f531c2ee86e7dd8dce89ac30a488f0ab", + "method": "goalReached()", + "signature": "7d3d65229eb2e3f47f0aeb7b8f366daefbe13b196c607159fd4cde7eaabfdd7e", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "refundee", - "type": "address" + "internalType": "uint256", + "name": "a", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "b", + "type": "uint256" + } + ], + "name": "add", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "claimRefund", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "claimRefund(address)", - "signature": "bffa55d5aa2ff90554572b1dce591d02b722be50bcfd4c7c58c507d2f080b61b", + "method": "add(uint256,uint256)", + "signature": "771602f7f25ce61b0d4f2430f7e4789bfd9e6e4029613fda01b7f2c89fbf44ad", "index": [], "indexed": 0, "eventSignature": null } }, { + "constant": true, "inputs": [ { - "name": "openingTime", + "internalType": "uint256", + "name": "a", "type": "uint256" }, { - "name": "closingTime", + "internalType": "uint256", + "name": "b", "type": "uint256" - }, + } + ], + "name": "div", + "outputs": [ { - "name": "rate", - "type": "uint256" - }, - { - "name": "wallet", - "type": "address" - }, - { - "name": "cap", - "type": "uint256" - }, - { - "name": "token", - "type": "address" - }, - { - "name": "goal", + "internalType": "uint256", + "name": "", "type": "uint256" } ], "payable": false, - "stateMutability": "nonpayable", - "type": "constructor", + "stateMutability": "pure", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "div(uint256,uint256)", + "signature": "a391c15b5e25fe2c4f540fe83ee2e810afc45df8c9095b3c54843078d5162044", "index": [], "indexed": 0, "eventSignature": null @@ -1885,17 +2077,20 @@ "constant": true, "inputs": [ { + "internalType": "uint256", "name": "a", "type": "uint256" }, { + "internalType": "uint256", "name": "b", "type": "uint256" } ], - "name": "mul", + "name": "mod", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -1904,8 +2099,8 @@ "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "mul(uint256,uint256)", - "signature": "c8a4ac9cf5aac391a07a9bdc2c522f2e824978425be99588f97394814d127214", + "method": "mod(uint256,uint256)", + "signature": "f43f523a11282709abfcd65af86db2cfddca6ecd71f78e335355cc7cddd8ef2c", "index": [], "indexed": 0, "eventSignature": null @@ -1915,17 +2110,20 @@ "constant": true, "inputs": [ { + "internalType": "uint256", "name": "a", "type": "uint256" }, { + "internalType": "uint256", "name": "b", "type": "uint256" } ], - "name": "div", + "name": "mul", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -1934,8 +2132,8 @@ "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "div(uint256,uint256)", - "signature": "a391c15b5e25fe2c4f540fe83ee2e810afc45df8c9095b3c54843078d5162044", + "method": "mul(uint256,uint256)", + "signature": "c8a4ac9cf5aac391a07a9bdc2c522f2e824978425be99588f97394814d127214", "index": [], "indexed": 0, "eventSignature": null @@ -1945,10 +2143,12 @@ "constant": true, "inputs": [ { + "internalType": "uint256", "name": "a", "type": "uint256" }, { + "internalType": "uint256", "name": "b", "type": "uint256" } @@ -1956,6 +2156,7 @@ "name": "sub", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -1972,78 +2173,129 @@ } }, { - "constant": true, "inputs": [ { - "name": "a", - "type": "uint256" - }, - { - "name": "b", - "type": "uint256" + "internalType": "contract IERC20", + "name": "token", + "type": "address" } ], - "name": "add", + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor", + "__signatureData": { + "method": null, + "signature": null, + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "allowance", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, - "stateMutability": "pure", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "add(uint256,uint256)", - "signature": "771602f7f25ce61b0d4f2430f7e4789bfd9e6e4029613fda01b7f2c89fbf44ad", + "method": "allowance()", + "signature": "de242ff44eaf9672978cebc9ed1e790957e7916a8047ae5cbd0d7d313ee83b98", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "a", + "internalType": "uint256", + "name": "amount", "type": "uint256" - }, + } + ], + "name": "approve", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "approve(uint256)", + "signature": "b759f954a973cc61187fb2d8ad2671610ddf40018143445f877381866da14ba2", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ { - "name": "b", + "internalType": "uint256", + "name": "amount", "type": "uint256" } ], - "name": "mod", - "outputs": [ + "name": "decreaseAllowance", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "decreaseAllowance(uint256)", + "signature": "10bad4cf682bbcd21585dce2167d59122587579177e2aeddf05870c0f83ca0aa", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ { - "name": "", + "internalType": "uint256", + "name": "amount", "type": "uint256" } ], + "name": "increaseAllowance", + "outputs": [], "payable": false, - "stateMutability": "pure", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "mod(uint256,uint256)", - "signature": "f43f523a11282709abfcd65af86db2cfddca6ecd71f78e335355cc7cddd8ef2c", + "method": "increaseAllowance(uint256)", + "signature": "11e330b2f7a89b9245ad53c2cf8b73418c0c35e979c862a29e386a29b7f376d2", "index": [], "indexed": 0, "eventSignature": null } }, { + "constant": false, "inputs": [ { - "name": "token", - "type": "address" + "internalType": "uint256", + "name": "allowance_", + "type": "uint256" } ], + "name": "setAllowance", + "outputs": [], "payable": false, "stateMutability": "nonpayable", - "type": "constructor", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "setAllowance(uint256)", + "signature": "3ba93f263461e1faf95940bf8b85a591b097726d6b4f1a2f81673df4474ad03b", "index": [], "indexed": 0, "eventSignature": null @@ -2082,126 +2334,140 @@ } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "amount", + "internalType": "uint256", + "name": "a", "type": "uint256" } ], - "name": "approve", - "outputs": [], + "name": "toUint128", + "outputs": [ + { + "internalType": "uint128", + "name": "", + "type": "uint128" + } + ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "approve(uint256)", - "signature": "b759f954a973cc61187fb2d8ad2671610ddf40018143445f877381866da14ba2", + "method": "toUint128(uint256)", + "signature": "809fdd33ec59cbc70dd4d4dc44b6cd3d3c04ced41d7835a8ff25b79f25b45fce", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "amount", + "internalType": "uint256", + "name": "a", "type": "uint256" } ], - "name": "increaseAllowance", - "outputs": [], + "name": "toUint16", + "outputs": [ + { + "internalType": "uint16", + "name": "", + "type": "uint16" + } + ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "increaseAllowance(uint256)", - "signature": "11e330b2f7a89b9245ad53c2cf8b73418c0c35e979c862a29e386a29b7f376d2", + "method": "toUint16(uint256)", + "signature": "9374068f97bd6cb9d0c0b55b775b200664fefe764a60946aece3b31d1afa2cde", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "amount", + "internalType": "uint256", + "name": "a", "type": "uint256" } ], - "name": "decreaseAllowance", - "outputs": [], + "name": "toUint32", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "decreaseAllowance(uint256)", - "signature": "10bad4cf682bbcd21585dce2167d59122587579177e2aeddf05870c0f83ca0aa", + "method": "toUint32(uint256)", + "signature": "c8193255f4cc629b6c8496a08fb302fe8c9a7459975dad3c6accbb7ff35f4395", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "allowance_", + "internalType": "uint256", + "name": "a", "type": "uint256" } ], - "name": "setAllowance", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "__signatureData": { - "method": "setAllowance(uint256)", - "signature": "3ba93f263461e1faf95940bf8b85a591b097726d6b4f1a2f81673df4474ad03b", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": true, - "inputs": [], - "name": "allowance", + "name": "toUint64", "outputs": [ { + "internalType": "uint64", "name": "", - "type": "uint256" + "type": "uint64" } ], "payable": false, - "stateMutability": "view", + "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "allowance()", - "signature": "de242ff44eaf9672978cebc9ed1e790957e7916a8047ae5cbd0d7d313ee83b98", + "method": "toUint64(uint256)", + "signature": "2665fad0bf4103f8162e9d4ab2c9e8daef60477cc969473217d6c2362f69d8a5", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "account", - "type": "address" + "internalType": "uint256", + "name": "a", + "type": "uint256" + } + ], + "name": "toUint8", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" } ], - "name": "add", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "add(address)", - "signature": "0a3b0a4f4c6e53dce3dbcad5614cb2ba3a0fa7326d03c5d64b4fa2d565492737", + "method": "toUint8(uint256)", + "signature": "0cc4681ea387e97ba648bd82290c2b0a6115fc05a9383ac3593426a270ece6ad", "index": [], "indexed": 0, "eventSignature": null @@ -2211,18 +2477,19 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } ], - "name": "remove", + "name": "add", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "remove(address)", - "signature": "29092d0ea9bcb5211809a4aaa5b0ebb94e6bef61bfe589f02c6c6fb1b193ffab", + "method": "add(address)", + "signature": "0a3b0a4f4c6e53dce3dbcad5614cb2ba3a0fa7326d03c5d64b4fa2d565492737", "index": [], "indexed": 0, "eventSignature": null @@ -2232,6 +2499,7 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } @@ -2239,6 +2507,7 @@ "name": "has", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -2258,18 +2527,19 @@ "constant": false, "inputs": [ { - "name": "beneficiary", + "internalType": "address", + "name": "account", "type": "address" } ], - "name": "withdrawTokens", + "name": "remove", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "withdrawTokens(address)", - "signature": "49df728c0ca6a6b5e99c72209a641756a92fc07ea31ddd473da43c9e1ee22167", + "method": "remove(address)", + "signature": "29092d0ea9bcb5211809a4aaa5b0ebb94e6bef61bfe589f02c6c6fb1b193ffab", "index": [], "indexed": 0, "eventSignature": null @@ -2278,26 +2548,32 @@ { "inputs": [ { + "internalType": "uint256", "name": "openingTime", "type": "uint256" }, { + "internalType": "uint256", "name": "closingTime", "type": "uint256" }, { + "internalType": "uint256", "name": "rate", "type": "uint256" }, { + "internalType": "address payable", "name": "wallet", "type": "address" }, { + "internalType": "contract IERC20", "name": "token", "type": "address" }, { + "internalType": "uint256", "name": "goal", "type": "uint256" } @@ -2314,60 +2590,114 @@ } }, { + "constant": false, "inputs": [ { - "name": "goal", - "type": "uint256" + "internalType": "address", + "name": "beneficiary", + "type": "address" } ], + "name": "withdrawTokens", + "outputs": [], "payable": false, "stateMutability": "nonpayable", - "type": "constructor", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "withdrawTokens(address)", + "signature": "49df728c0ca6a6b5e99c72209a641756a92fc07ea31ddd473da43c9e1ee22167", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, "inputs": [ { - "name": "payee", - "type": "address" + "internalType": "uint256", + "name": "goal", + "type": "uint256" } ], - "name": "withdraw", - "outputs": [], "payable": false, "stateMutability": "nonpayable", - "type": "function", + "type": "constructor", "__signatureData": { - "method": "withdraw(address)", - "signature": "51cff8d9250863e8fc5cd0539fa8c8d5a5201deba4fa87f6350c7586c06e5914", + "method": null, + "signature": null, "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, "inputs": [ { - "name": "payee", + "internalType": "address payable", + "name": "beneficiary", "type": "address" } ], - "name": "withdrawWithGas", + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor", + "__signatureData": { + "method": null, + "signature": null, + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [], + "name": "beneficiaryWithdraw", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "withdrawWithGas(address)", - "signature": "6809691ae9e5a0f8c57d249bed22874ecd3174786e9025089a9709509288d78a", + "method": "beneficiaryWithdraw()", + "signature": "9af6549a65e0ba7ce4b0aee44adb9e1d42df7600cf590db392d719ba752944d1", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [], + "name": "close", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "close()", + "signature": "43d726d69bfad97630bc12e80b1a43c44fecfddf089a314709482b2b0132f662", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "refundee", + "type": "address" + } + ], + "name": "deposit", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function", + "__signatureData": { + "method": "deposit(address)", + "signature": "f340fa01ba70ec28a2fc9deca0888a496a2ab4c153fdd320f62dca6e72f8cbff", "index": [], "indexed": 0, "eventSignature": null @@ -2377,6 +2707,7 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "payee", "type": "address" } @@ -2384,6 +2715,7 @@ "name": "depositsOf", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -2400,18 +2732,16 @@ } }, { - "inputs": [ - { - "name": "beneficiary", - "type": "address" - } - ], + "constant": false, + "inputs": [], + "name": "enableRefunds", + "outputs": [], "payable": false, "stateMutability": "nonpayable", - "type": "constructor", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "enableRefunds()", + "signature": "8c52dc41c32b5cdcd11391ff8fe832366bb985c7743bb1d159489ed533d18151", "index": [], "indexed": 0, "eventSignature": null @@ -2423,6 +2753,7 @@ "name": "state", "outputs": [ { + "internalType": "enum RefundEscrow.State", "name": "", "type": "uint8" } @@ -2442,50 +2773,19 @@ "constant": false, "inputs": [ { - "name": "refundee", + "internalType": "address payable", + "name": "payee", "type": "address" } ], - "name": "deposit", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "type": "function", - "__signatureData": { - "method": "deposit(address)", - "signature": "f340fa01ba70ec28a2fc9deca0888a496a2ab4c153fdd320f62dca6e72f8cbff", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": false, - "inputs": [], - "name": "close", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "__signatureData": { - "method": "close()", - "signature": "43d726d69bfad97630bc12e80b1a43c44fecfddf089a314709482b2b0132f662", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": false, - "inputs": [], - "name": "enableRefunds", + "name": "withdraw", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "enableRefunds()", - "signature": "8c52dc41c32b5cdcd11391ff8fe832366bb985c7743bb1d159489ed533d18151", + "method": "withdraw(address)", + "signature": "51cff8d9250863e8fc5cd0539fa8c8d5a5201deba4fa87f6350c7586c06e5914", "index": [], "indexed": 0, "eventSignature": null @@ -2493,15 +2793,21 @@ }, { "constant": false, - "inputs": [], - "name": "beneficiaryWithdraw", + "inputs": [ + { + "internalType": "address payable", + "name": "payee", + "type": "address" + } + ], + "name": "withdrawWithGas", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "beneficiaryWithdraw()", - "signature": "9af6549a65e0ba7ce4b0aee44adb9e1d42df7600cf590db392d719ba752944d1", + "method": "withdrawWithGas(address)", + "signature": "6809691ae9e5a0f8c57d249bed22874ecd3174786e9025089a9709509288d78a", "index": [], "indexed": 0, "eventSignature": null @@ -2511,6 +2817,7 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "", "type": "address" } @@ -2518,6 +2825,7 @@ "name": "withdrawalAllowed", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -2534,21 +2842,16 @@ } }, { - "constant": true, + "constant": false, "inputs": [], - "name": "counter", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], + "name": "callback", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "counter()", - "signature": "61bc221a8a81ed8dcf68fb79e95091717f0287b80c647d460792d4a6fa2e52eb", + "method": "callback()", + "signature": "083b2732f78169bfaad6b407fa338cc97d697ed69d3915a18239cc111d51a402", "index": [], "indexed": 0, "eventSignature": null @@ -2556,15 +2859,21 @@ }, { "constant": false, - "inputs": [], - "name": "callback", + "inputs": [ + { + "internalType": "contract ReentrancyAttack", + "name": "attacker", + "type": "address" + } + ], + "name": "countAndCall", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "callback()", - "signature": "083b2732f78169bfaad6b407fa338cc97d697ed69d3915a18239cc111d51a402", + "method": "countAndCall(address)", + "signature": "b672ad8b8bf1e348aeb6a8ae25066364f905dde7277bbf922f19de877bbcbcfd", "index": [], "indexed": 0, "eventSignature": null @@ -2574,6 +2883,7 @@ "constant": false, "inputs": [ { + "internalType": "uint256", "name": "n", "type": "uint256" } @@ -2595,6 +2905,7 @@ "constant": false, "inputs": [ { + "internalType": "uint256", "name": "n", "type": "uint256" } @@ -2613,21 +2924,22 @@ } }, { - "constant": false, - "inputs": [ + "constant": true, + "inputs": [], + "name": "counter", + "outputs": [ { - "name": "attacker", - "type": "address" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "countAndCall", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "countAndCall(address)", - "signature": "b672ad8b8bf1e348aeb6a8ae25066364f905dde7277bbf922f19de877bbcbcfd", + "method": "counter()", + "signature": "61bc221a8a81ed8dcf68fb79e95091717f0287b80c647d460792d4a6fa2e52eb", "index": [], "indexed": 0, "eventSignature": null @@ -2637,6 +2949,7 @@ "constant": false, "inputs": [ { + "internalType": "bytes4", "name": "data", "type": "bytes4" } @@ -2655,21 +2968,13 @@ } }, { - "constant": false, - "inputs": [ - { - "name": "payee", - "type": "address" - } - ], - "name": "withdrawPayments", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", + "inputs": [], + "payable": true, + "stateMutability": "payable", + "type": "constructor", "__signatureData": { - "method": "withdrawPayments(address)", - "signature": "31b3eb94bf3cb27e4befc6a7d368e588019d82d31d1e29f0cbf0300ba0ae9e2e", + "method": null, + "signature": null, "index": [], "indexed": 0, "eventSignature": null @@ -2679,18 +2984,24 @@ "constant": false, "inputs": [ { - "name": "payee", + "internalType": "address", + "name": "dest", "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" } ], - "name": "withdrawPaymentsWithGas", + "name": "callTransfer", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "withdrawPaymentsWithGas(address)", - "signature": "653cfa5902f28be1cc0010a15dc0e48b4dbbbdd8d06323ede1836ba371423d1a", + "method": "callTransfer(address,uint256)", + "signature": "d444099120fe924eee0b46151366fd5c5b586714e3776ad6423f20986508bb7a", "index": [], "indexed": 0, "eventSignature": null @@ -2700,6 +3011,7 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "dest", "type": "address" } @@ -2707,6 +3019,7 @@ "name": "payments", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -2723,13 +3036,22 @@ } }, { - "inputs": [], - "payable": true, - "stateMutability": "payable", - "type": "constructor", + "constant": false, + "inputs": [ + { + "internalType": "address payable", + "name": "payee", + "type": "address" + } + ], + "name": "withdrawPayments", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "withdrawPayments(address)", + "signature": "31b3eb94bf3cb27e4befc6a7d368e588019d82d31d1e29f0cbf0300ba0ae9e2e", "index": [], "indexed": 0, "eventSignature": null @@ -2739,22 +3061,19 @@ "constant": false, "inputs": [ { - "name": "dest", + "internalType": "address payable", + "name": "payee", "type": "address" - }, - { - "name": "amount", - "type": "uint256" } ], - "name": "callTransfer", + "name": "withdrawPaymentsWithGas", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "callTransfer(address,uint256)", - "signature": "d444099120fe924eee0b46151366fd5c5b586714e3776ad6423f20986508bb7a", + "method": "withdrawPaymentsWithGas(address)", + "signature": "653cfa5902f28be1cc0010a15dc0e48b4dbbbdd8d06323ede1836ba371423d1a", "index": [], "indexed": 0, "eventSignature": null @@ -2763,10 +3082,12 @@ { "inputs": [ { + "internalType": "address[]", "name": "payees", "type": "address[]" }, { + "internalType": "uint256[]", "name": "shares", "type": "uint256[]" } @@ -2784,41 +3105,49 @@ }, { "constant": true, - "inputs": [], - "name": "totalShares", + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "payee", "outputs": [ { + "internalType": "address", "name": "", - "type": "uint256" + "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "totalShares()", - "signature": "3a98ef39d75a0463a589a77e7570097b7e407deab0b5678402f964703022acc1", + "method": "payee(uint256)", + "signature": "8b83209b99041e6da916f8608f0e4b26e544903e9cccd82f1e4d56d4b000973f", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, - "inputs": [], - "name": "totalReleased", - "outputs": [ + "constant": false, + "inputs": [ { - "name": "", - "type": "uint256" + "internalType": "address payable", + "name": "account", + "type": "address" } ], + "name": "release", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "totalReleased()", - "signature": "e33b7de3b4be2fc8b13374ba49c74d26662811d0233a4d730a02537c6f69e3d2", + "method": "release(address)", + "signature": "19165587d81f9d3d0d57225d38f5bb5163beb87e4b5fafa3a2f80c53398d9874", "index": [], "indexed": 0, "eventSignature": null @@ -2828,13 +3157,15 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } ], - "name": "shares", + "name": "released", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -2843,8 +3174,8 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "shares(address)", - "signature": "ce7c2ac2babd16f4d8c518abdcb99ed8e1402512d3d522f56911309564fde112", + "method": "released(address)", + "signature": "9852595c0fbd961d727982297e4c952a54c25835b2c098f8db439cef15df7ced", "index": [], "indexed": 0, "eventSignature": null @@ -2854,13 +3185,15 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } ], - "name": "released", + "name": "shares", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -2869,8 +3202,8 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "released(address)", - "signature": "9852595c0fbd961d727982297e4c952a54c25835b2c098f8db439cef15df7ced", + "method": "shares(address)", + "signature": "ce7c2ac2babd16f4d8c518abdcb99ed8e1402512d3d522f56911309564fde112", "index": [], "indexed": 0, "eventSignature": null @@ -2878,25 +3211,43 @@ }, { "constant": true, - "inputs": [ + "inputs": [], + "name": "totalReleased", + "outputs": [ { - "name": "index", + "internalType": "uint256", + "name": "", "type": "uint256" } ], - "name": "payee", + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "totalReleased()", + "signature": "e33b7de3b4be2fc8b13374ba49c74d26662811d0233a4d730a02537c6f69e3d2", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "totalShares", "outputs": [ { + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "payee(uint256)", - "signature": "8b83209b99041e6da916f8608f0e4b26e544903e9cccd82f1e4d56d4b000973f", + "method": "totalShares()", + "signature": "3a98ef39d75a0463a589a77e7570097b7e407deab0b5678402f964703022acc1", "index": [], "indexed": 0, "eventSignature": null @@ -2906,18 +3257,19 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } ], - "name": "release", + "name": "addPauser", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "release(address)", - "signature": "19165587d81f9d3d0d57225d38f5bb5163beb87e4b5fafa3a2f80c53398d9874", + "method": "addPauser(address)", + "signature": "82dc1ec426f590f8e02fbc1e3fcd7395a4cc661900beaeea90dc088b2956fc37", "index": [], "indexed": 0, "eventSignature": null @@ -2927,6 +3279,7 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } @@ -2934,6 +3287,7 @@ "name": "isPauser", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -2950,37 +3304,16 @@ } }, { - "constant": false, + "constant": true, "inputs": [], - "name": "renouncePauser", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "__signatureData": { - "method": "renouncePauser()", - "signature": "6ef8d66d09e9638ba6c52670cc83e8112ad6c16152362ed3ceaf81ba38a55620", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": false, - "inputs": [ - { - "name": "account", - "type": "address" - } - ], - "name": "addPauser", + "name": "onlyPauserMock", "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "addPauser(address)", - "signature": "82dc1ec426f590f8e02fbc1e3fcd7395a4cc661900beaeea90dc088b2956fc37", + "method": "onlyPauserMock()", + "signature": "329daf90db5adf232d700a8646026bc8cec2c58f5196cbd0f9d1da14fe7c13af", "index": [], "indexed": 0, "eventSignature": null @@ -2990,6 +3323,7 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } @@ -3008,16 +3342,16 @@ } }, { - "constant": true, + "constant": false, "inputs": [], - "name": "onlyPauserMock", + "name": "renouncePauser", "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "onlyPauserMock()", - "signature": "329daf90db5adf232d700a8646026bc8cec2c58f5196cbd0f9d1da14fe7c13af", + "method": "renouncePauser()", + "signature": "6ef8d66d09e9638ba6c52670cc83e8112ad6c16152362ed3ceaf81ba38a55620", "index": [], "indexed": 0, "eventSignature": null @@ -3029,6 +3363,7 @@ "name": "count", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -3047,14 +3382,14 @@ { "constant": false, "inputs": [], - "name": "unpause", + "name": "drasticMeasure", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "unpause()", - "signature": "3f4ba83af89dc9793996d9e56b8abe6dc88cd97c9c2bb23027806e9c1ffd54dc", + "method": "drasticMeasure()", + "signature": "9958f0458a205db2b6fd3761855edea436acb6641e0146dd103049809dec8a3c", "index": [], "indexed": 0, "eventSignature": null @@ -3063,9 +3398,10 @@ { "constant": true, "inputs": [], - "name": "paused", + "name": "drasticMeasureTaken", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -3074,29 +3410,24 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "paused()", - "signature": "5c975abbf8c4d6efa68fc896e233763eb503f2318260b7bf59b19412913788b2", + "method": "drasticMeasureTaken()", + "signature": "76657b8e9f8871e69f7ec04e85644b5b24216603938143a793e736009e7e09e6", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [], - "name": "drasticMeasureTaken", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], + "name": "normalProcess", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "drasticMeasureTaken()", - "signature": "76657b8e9f8871e69f7ec04e85644b5b24216603938143a793e736009e7e09e6", + "method": "normalProcess()", + "signature": "e7651d7aafddcc3ef76b5e1ee2ca687555fb23ebd00d0784dfea8224ed24b768", "index": [], "indexed": 0, "eventSignature": null @@ -3119,16 +3450,22 @@ } }, { - "constant": false, + "constant": true, "inputs": [], - "name": "normalProcess", - "outputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "normalProcess()", - "signature": "e7651d7aafddcc3ef76b5e1ee2ca687555fb23ebd00d0784dfea8224ed24b768", + "method": "paused()", + "signature": "5c975abbf8c4d6efa68fc896e233763eb503f2318260b7bf59b19412913788b2", "index": [], "indexed": 0, "eventSignature": null @@ -3137,14 +3474,43 @@ { "constant": false, "inputs": [], - "name": "drasticMeasure", + "name": "unpause", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "drasticMeasure()", - "signature": "9958f0458a205db2b6fd3761855edea436acb6641e0146dd103049809dec8a3c", + "method": "unpause()", + "signature": "3f4ba83af89dc9793996d9e56b8abe6dc88cd97c9c2bb23027806e9c1ffd54dc", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_rate", + "type": "uint256" + }, + { + "internalType": "address payable", + "name": "_wallet", + "type": "address" + }, + { + "internalType": "contract ERC20", + "name": "_token", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor", + "__signatureData": { + "method": null, + "signature": null, "index": [], "indexed": 0, "eventSignature": null @@ -3156,6 +3522,7 @@ "name": "getInterfaceId", "outputs": [ { + "internalType": "bytes4", "name": "", "type": "bytes4" } @@ -3171,10 +3538,27 @@ "eventSignature": null } }, + { + "constant": true, + "inputs": [], + "name": "onlyMinterMock", + "outputs": [], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "onlyMinterMock()", + "signature": "b5dba35b6d1bf340f7be937f68a63a7272765239305ff53eba7b42cdcaa26a04", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, { "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } @@ -3192,33 +3576,20 @@ "eventSignature": null } }, - { - "constant": true, - "inputs": [], - "name": "onlyMinterMock", - "outputs": [], - "payable": false, - "stateMutability": "view", - "type": "function", - "__signatureData": { - "method": "onlyMinterMock()", - "signature": "b5dba35b6d1bf340f7be937f68a63a7272765239305ff53eba7b42cdcaa26a04", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, { "inputs": [ { + "internalType": "uint256", "name": "rate", "type": "uint256" }, { + "internalType": "address payable", "name": "wallet", "type": "address" }, { + "internalType": "contract ERC20Mintable", "name": "token", "type": "address" } @@ -3238,14 +3609,17 @@ "constant": true, "inputs": [ { + "internalType": "bytes32[]", "name": "proof", "type": "bytes32[]" }, { + "internalType": "bytes32", "name": "root", "type": "bytes32" }, { + "internalType": "bytes32", "name": "leaf", "type": "bytes32" } @@ -3253,6 +3627,7 @@ "name": "verify", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -3272,17 +3647,20 @@ "constant": true, "inputs": [ { + "internalType": "uint256", "name": "a", "type": "uint256" }, { + "internalType": "uint256", "name": "b", "type": "uint256" } ], - "name": "max", + "name": "average", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -3291,8 +3669,8 @@ "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "max(uint256,uint256)", - "signature": "6d5433e60c0e37182e8640acdecd142bfe64bc13cf849efdcb641717d2842d9d", + "method": "average(uint256,uint256)", + "signature": "2b7423abf0c092723f89beda5daa1c6b1a7c433c1d9e7f74a66262925656f297", "index": [], "indexed": 0, "eventSignature": null @@ -3302,17 +3680,20 @@ "constant": true, "inputs": [ { + "internalType": "uint256", "name": "a", "type": "uint256" }, { + "internalType": "uint256", "name": "b", "type": "uint256" } ], - "name": "min", + "name": "max", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -3321,8 +3702,8 @@ "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "min(uint256,uint256)", - "signature": "7ae2b5c7066d52e453426c67b3fad21baae01a9be722818751aa86781dbfb5c2", + "method": "max(uint256,uint256)", + "signature": "6d5433e60c0e37182e8640acdecd142bfe64bc13cf849efdcb641717d2842d9d", "index": [], "indexed": 0, "eventSignature": null @@ -3332,17 +3713,20 @@ "constant": true, "inputs": [ { + "internalType": "uint256", "name": "a", "type": "uint256" }, { + "internalType": "uint256", "name": "b", "type": "uint256" } ], - "name": "average", + "name": "min", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -3351,60 +3735,37 @@ "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "average(uint256,uint256)", - "signature": "2b7423abf0c092723f89beda5daa1c6b1a7c433c1d9e7f74a66262925656f297", + "method": "min(uint256,uint256)", + "signature": "7ae2b5c7066d52e453426c67b3fad21baae01a9be722818751aa86781dbfb5c2", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, "inputs": [ { - "name": "beneficiary", + "internalType": "uint256", + "name": "rate", + "type": "uint256" + }, + { + "internalType": "address payable", + "name": "wallet", "type": "address" - } - ], - "name": "getContribution", - "outputs": [ + }, { - "name": "", - "type": "uint256" + "internalType": "contract IERC20", + "name": "token", + "type": "address" } ], "payable": false, - "stateMutability": "view", - "type": "function", + "stateMutability": "nonpayable", + "type": "constructor", "__signatureData": { - "method": "getContribution(address)", - "signature": "21eff7fc1631da8139bce6c02359fc3e44205c53bb3b122a22a25d0cc4b9f32a", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": true, - "inputs": [ - { - "name": "account", - "type": "address" - } - ], - "name": "isCapper", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "__signatureData": { - "method": "isCapper(address)", - "signature": "395645610bb182afbb55be0490f881ba303eb035e827e469681b43405f92dc66", + "method": null, + "signature": null, "index": [], "indexed": 0, "eventSignature": null @@ -3414,80 +3775,75 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } ], - "name": "removeCapper", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "__signatureData": { - "method": "removeCapper(address)", - "signature": "3f4a648494db3f817b03288a052db3081855f0c0a5349acd48fb788580dd1b07", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": false, - "inputs": [], - "name": "renounceCapper", + "name": "addCapper", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "renounceCapper()", - "signature": "5d5576f8400b403d0ee565e683a6f8b36fd3f83fe3f63002501be35ef65d126e", + "method": "addCapper(address)", + "signature": "8dfbcf360614e363adad8a299c5cc64ba91d68047abea24a8c55b6d8041b7d9b", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { + "internalType": "address", "name": "beneficiary", "type": "address" - }, + } + ], + "name": "getCap", + "outputs": [ { - "name": "cap", + "internalType": "uint256", + "name": "", "type": "uint256" } ], - "name": "setCap", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "setCap(address,uint256)", - "signature": "80ad2cf3dae65fa5a64dfaf69597ced83d07cd5b358301e2770664a6258b7041", + "method": "getCap(address)", + "signature": "b3aefb754817c41c8ee0e0f6012d7248b329b04af3787e228a58bb0e3379f816", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "account", + "internalType": "address", + "name": "beneficiary", "type": "address" } ], - "name": "addCapper", - "outputs": [], + "name": "getContribution", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "addCapper(address)", - "signature": "8dfbcf360614e363adad8a299c5cc64ba91d68047abea24a8c55b6d8041b7d9b", + "method": "getContribution(address)", + "signature": "21eff7fc1631da8139bce6c02359fc3e44205c53bb3b122a22a25d0cc4b9f32a", "index": [], "indexed": 0, "eventSignature": null @@ -3497,23 +3853,25 @@ "constant": true, "inputs": [ { - "name": "beneficiary", + "internalType": "address", + "name": "account", "type": "address" } ], - "name": "getCap", + "name": "isCapper", "outputs": [ { + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "getCap(address)", - "signature": "b3aefb754817c41c8ee0e0f6012d7248b329b04af3787e228a58bb0e3379f816", + "method": "isCapper(address)", + "signature": "395645610bb182afbb55be0490f881ba303eb035e827e469681b43405f92dc66", "index": [], "indexed": 0, "eventSignature": null @@ -3536,63 +3894,65 @@ } }, { - "constant": true, - "inputs": [], - "name": "finalRate", - "outputs": [ + "constant": false, + "inputs": [ { - "name": "", - "type": "uint256" + "internalType": "address", + "name": "account", + "type": "address" } ], + "name": "removeCapper", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "finalRate()", - "signature": "21106109c098c8e769d8e06608f6672d4d951216ad40155ba42beb5450014105", + "method": "removeCapper(address)", + "signature": "3f4a648494db3f817b03288a052db3081855f0c0a5349acd48fb788580dd1b07", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [], - "name": "initialRate", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], + "name": "renounceCapper", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "initialRate()", - "signature": "9e51051f24c46573a349a4619f1048aa4311678ef42975ceb003f2c51ff2a9df", + "method": "renounceCapper()", + "signature": "5d5576f8400b403d0ee565e683a6f8b36fd3f83fe3f63002501be35ef65d126e", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, - "inputs": [], - "name": "getCurrentRate", - "outputs": [ + "constant": false, + "inputs": [ { - "name": "", + "internalType": "address", + "name": "beneficiary", + "type": "address" + }, + { + "internalType": "uint256", + "name": "cap", "type": "uint256" } ], + "name": "setCap", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "getCurrentRate()", - "signature": "f7fb07b07a166fffdf5845ab298725c70a943f62b3a7b2283aa6a749d3bc5b66", + "method": "setCap(address,uint256)", + "signature": "80ad2cf3dae65fa5a64dfaf69597ced83d07cd5b358301e2770664a6258b7041", "index": [], "indexed": 0, "eventSignature": null @@ -3601,26 +3961,32 @@ { "inputs": [ { + "internalType": "uint256", "name": "openingTime", "type": "uint256" }, { + "internalType": "uint256", "name": "closingTime", "type": "uint256" }, { + "internalType": "address payable", "name": "wallet", "type": "address" }, { + "internalType": "contract IERC20", "name": "token", "type": "address" }, { + "internalType": "uint256", "name": "initialRate", "type": "uint256" }, { + "internalType": "uint256", "name": "finalRate", "type": "uint256" } @@ -3637,22 +4003,44 @@ } }, { - "inputs": [ + "constant": true, + "inputs": [], + "name": "finalRate", + "outputs": [ { - "name": "initialRate", + "internalType": "uint256", + "name": "", "type": "uint256" - }, + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "finalRate()", + "signature": "21106109c098c8e769d8e06608f6672d4d951216ad40155ba42beb5450014105", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "getCurrentRate", + "outputs": [ { - "name": "finalRate", + "internalType": "uint256", + "name": "", "type": "uint256" } ], "payable": false, - "stateMutability": "nonpayable", - "type": "constructor", + "stateMutability": "view", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "getCurrentRate()", + "signature": "f7fb07b07a166fffdf5845ab298725c70a943f62b3a7b2283aa6a749d3bc5b66", "index": [], "indexed": 0, "eventSignature": null @@ -3661,19 +4049,44 @@ { "constant": true, "inputs": [], - "name": "getHubAddr", + "name": "initialRate", "outputs": [ { + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "getHubAddr()", - "signature": "74e861d6e907742ab3885440c07cfffd4d98f68c300dce0fd09fe61b6eb812c3", + "method": "initialRate()", + "signature": "9e51051f24c46573a349a4619f1048aa4311678ef42975ceb003f2c51ff2a9df", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "initialRate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "finalRate", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor", + "__signatureData": { + "method": null, + "signature": null, "index": [], "indexed": 0, "eventSignature": null @@ -3683,38 +4096,47 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "relay", "type": "address" }, { + "internalType": "address", "name": "from", "type": "address" }, { + "internalType": "bytes", "name": "encodedFunction", "type": "bytes" }, { + "internalType": "uint256", "name": "transactionFee", "type": "uint256" }, { + "internalType": "uint256", "name": "gasPrice", "type": "uint256" }, { + "internalType": "uint256", "name": "gasLimit", "type": "uint256" }, { + "internalType": "uint256", "name": "nonce", "type": "uint256" }, { + "internalType": "bytes", "name": "approvalData", "type": "bytes" }, { + "internalType": "uint256", "name": "maxPossibleCharge", "type": "uint256" } @@ -3722,10 +4144,12 @@ "name": "acceptRelayedCall", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" }, { + "internalType": "bytes", "name": "", "type": "bytes" } @@ -3742,26 +4166,22 @@ } }, { - "constant": false, - "inputs": [ - { - "name": "context", - "type": "bytes" - } - ], - "name": "preRelayedCall", + "constant": true, + "inputs": [], + "name": "getHubAddr", "outputs": [ { + "internalType": "address", "name": "", - "type": "bytes32" + "type": "address" } ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "preRelayedCall(bytes)", - "signature": "80274db7ae75e1ffa7ffdddd8a8d1cd4af90f5af220feaec1ead8c2bd7f63788", + "method": "getHubAddr()", + "signature": "74e861d6e907742ab3885440c07cfffd4d98f68c300dce0fd09fe61b6eb812c3", "index": [], "indexed": 0, "eventSignature": null @@ -3771,18 +4191,22 @@ "constant": false, "inputs": [ { + "internalType": "bytes", "name": "context", "type": "bytes" }, { + "internalType": "bool", "name": "success", "type": "bool" }, { + "internalType": "uint256", "name": "actualCharge", "type": "uint256" }, { + "internalType": "bytes32", "name": "preRetVal", "type": "bytes32" } @@ -3804,47 +4228,131 @@ "constant": false, "inputs": [ { - "name": "relayaddr", - "type": "address" - }, + "internalType": "bytes", + "name": "context", + "type": "bytes" + } + ], + "name": "preRelayedCall", + "outputs": [ { - "name": "unstakeDelay", - "type": "uint256" + "internalType": "bytes32", + "name": "", + "type": "bytes32" } ], - "name": "stake", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "type": "function", + "payable": false, + "stateMutability": "nonpayable", + "type": "function", "__signatureData": { - "method": "stake(address,uint256)", - "signature": "adc9772e9f3b2218b39abb39e4dd00e4a7f4ca0809c2c3fd73a7011defd8a83f", + "method": "preRelayedCall(bytes)", + "signature": "80274db7ae75e1ffa7ffdddd8a8d1cd4af90f5af220feaec1ead8c2bd7f63788", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "balanceOf(address)", + "signature": "70a08231b98ef4ca268c9cc3f6b4590e4bfec28280db06bb5d45e689f2a360be", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, "inputs": [ { + "internalType": "address", + "name": "relay", + "type": "address" + }, + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "bytes", + "name": "encodedFunction", + "type": "bytes" + }, + { + "internalType": "uint256", "name": "transactionFee", "type": "uint256" }, { - "name": "url", - "type": "string" + "internalType": "uint256", + "name": "gasPrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "gasLimit", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "signature", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "approvalData", + "type": "bytes" + } + ], + "name": "canRelay", + "outputs": [ + { + "internalType": "uint256", + "name": "status", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "recipientContext", + "type": "bytes" } ], - "name": "registerRelay", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "registerRelay(uint256,string)", - "signature": "1166073a9ff87aa11d62b4f0dffac7fcaedb3ba9046d63dea3a2e32565763fe6", + "method": "canRelay(address,address,address,bytes,uint256,uint256,uint256,uint256,bytes,bytes)", + "signature": "2b601747511f3f4c3a522b4a4d8e69eb33b6504a2f228bddd28b773af5dcc5cb", "index": [], "indexed": 0, "eventSignature": null @@ -3854,39 +4362,47 @@ "constant": false, "inputs": [ { - "name": "relay", + "internalType": "address", + "name": "target", "type": "address" } ], - "name": "removeRelayByOwner", + "name": "depositFor", "outputs": [], - "payable": false, - "stateMutability": "nonpayable", + "payable": true, + "stateMutability": "payable", "type": "function", "__signatureData": { - "method": "removeRelayByOwner(address)", - "signature": "c3e712f26ec93100dd7291dcd6af6573a4a83757e448cb388d1e1a9c1b3eb947", + "method": "depositFor(address)", + "signature": "aa67c919e0857e147ffeead4bdc357425a4fdbad9f434ae46e0445b355dca983", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "relay", + "internalType": "address", + "name": "from", "type": "address" } ], - "name": "unstake", - "outputs": [], + "name": "getNonce", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "unstake(address)", - "signature": "f2888dbbb28494a57963b14340157c06ae31f99a08b1c349673e4a5ea3324f07", + "method": "getNonce(address)", + "signature": "2d0335aba15fb7c7be0e001e3b72649542ef9da34ad10a6b12ac499aca97bf03", "index": [], "indexed": 0, "eventSignature": null @@ -3896,6 +4412,7 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "relay", "type": "address" } @@ -3903,22 +4420,27 @@ "name": "getRelay", "outputs": [ { + "internalType": "uint256", "name": "totalStake", "type": "uint256" }, { + "internalType": "uint256", "name": "unstakeDelay", "type": "uint256" }, { + "internalType": "uint256", "name": "unstakeTime", "type": "uint256" }, { + "internalType": "address payable", "name": "owner", "type": "address" }, { + "internalType": "enum IRelayHub.RelayState", "name": "state", "type": "uint8" } @@ -3934,38 +4456,29 @@ "eventSignature": null } }, - { - "constant": false, - "inputs": [ - { - "name": "target", - "type": "address" - } - ], - "name": "depositFor", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "type": "function", - "__signatureData": { - "method": "depositFor(address)", - "signature": "aa67c919e0857e147ffeead4bdc357425a4fdbad9f434ae46e0445b355dca983", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, { "constant": true, "inputs": [ { - "name": "target", - "type": "address" + "internalType": "uint256", + "name": "relayedCallStipend", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "gasPrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "transactionFee", + "type": "uint256" } ], - "name": "balanceOf", + "name": "maxPossibleCharge", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -3974,8 +4487,8 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "balanceOf(address)", - "signature": "70a08231b98ef4ca268c9cc3f6b4590e4bfec28280db06bb5d45e689f2a360be", + "method": "maxPossibleCharge(uint256,uint256,uint256)", + "signature": "a863f8f965ddbdeb0134bd2cedd241bc9d650a275a0aecf72024edde60dd96c1", "index": [], "indexed": 0, "eventSignature": null @@ -3985,88 +4498,88 @@ "constant": false, "inputs": [ { - "name": "amount", - "type": "uint256" + "internalType": "bytes", + "name": "unsignedTx", + "type": "bytes" }, { - "name": "dest", - "type": "address" + "internalType": "bytes", + "name": "signature", + "type": "bytes" } ], - "name": "withdraw", + "name": "penalizeIllegalTransaction", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "withdraw(uint256,address)", - "signature": "00f714ce93c4a188ecc0c802ca78036f638c1c4b3ee9b98f3ed75364b45f50b1", + "method": "penalizeIllegalTransaction(bytes,bytes)", + "signature": "390024325e037b6652cf6827845a7b6df9dd6ccbdc6e998ee910139d10377ba2", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "relay", - "type": "address" - }, - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "encodedFunction", + "internalType": "bytes", + "name": "unsignedTx1", "type": "bytes" }, { - "name": "transactionFee", - "type": "uint256" - }, - { - "name": "gasPrice", - "type": "uint256" - }, - { - "name": "gasLimit", - "type": "uint256" - }, - { - "name": "nonce", - "type": "uint256" + "internalType": "bytes", + "name": "signature1", + "type": "bytes" }, { - "name": "signature", + "internalType": "bytes", + "name": "unsignedTx2", "type": "bytes" }, { - "name": "approvalData", + "internalType": "bytes", + "name": "signature2", "type": "bytes" } ], - "name": "canRelay", - "outputs": [ + "name": "penalizeRepeatedNonce", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "penalizeRepeatedNonce(bytes,bytes,bytes,bytes)", + "signature": "a8cd9572006f07cb5371172782eba6c734760b27217cb5a543459ccdc3f0e907", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ { - "name": "status", + "internalType": "uint256", + "name": "transactionFee", "type": "uint256" }, { - "name": "recipientContext", - "type": "bytes" + "internalType": "string", + "name": "url", + "type": "string" } ], + "name": "registerRelay", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "canRelay(address,address,address,bytes,uint256,uint256,uint256,uint256,bytes,bytes)", - "signature": "2b601747511f3f4c3a522b4a4d8e69eb33b6504a2f228bddd28b773af5dcc5cb", + "method": "registerRelay(uint256,string)", + "signature": "1166073a9ff87aa11d62b4f0dffac7fcaedb3ba9046d63dea3a2e32565763fe6", "index": [], "indexed": 0, "eventSignature": null @@ -4076,38 +4589,47 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "from", "type": "address" }, { + "internalType": "address", "name": "to", "type": "address" }, { + "internalType": "bytes", "name": "encodedFunction", "type": "bytes" }, { + "internalType": "uint256", "name": "transactionFee", "type": "uint256" }, { + "internalType": "uint256", "name": "gasPrice", "type": "uint256" }, { + "internalType": "uint256", "name": "gasLimit", "type": "uint256" }, { + "internalType": "uint256", "name": "nonce", "type": "uint256" }, { + "internalType": "bytes", "name": "signature", "type": "bytes" }, { + "internalType": "bytes", "name": "approvalData", "type": "bytes" } @@ -4126,26 +4648,22 @@ } }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "relayedCallStipend", - "type": "uint256" - } - ], - "name": "requiredGas", - "outputs": [ - { - "name": "", - "type": "uint256" + "internalType": "address", + "name": "relay", + "type": "address" } ], - "payable": false, - "stateMutability": "view", + "name": "removeRelayByOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "requiredGas(uint256)", - "signature": "6a7d84a4e461b2d2841297ef63924952dc8887d4b4ea4066a018345a725a8ab8", + "method": "removeRelayByOwner(address)", + "signature": "c3e712f26ec93100dd7291dcd6af6573a4a83757e448cb388d1e1a9c1b3eb947", "index": [], "indexed": 0, "eventSignature": null @@ -4155,21 +4673,15 @@ "constant": true, "inputs": [ { + "internalType": "uint256", "name": "relayedCallStipend", "type": "uint256" - }, - { - "name": "gasPrice", - "type": "uint256" - }, - { - "name": "transactionFee", - "type": "uint256" } ], - "name": "maxPossibleCharge", + "name": "requiredGas", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -4178,8 +4690,8 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "maxPossibleCharge(uint256,uint256,uint256)", - "signature": "a863f8f965ddbdeb0134bd2cedd241bc9d650a275a0aecf72024edde60dd96c1", + "method": "requiredGas(uint256)", + "signature": "6a7d84a4e461b2d2841297ef63924952dc8887d4b4ea4066a018345a725a8ab8", "index": [], "indexed": 0, "eventSignature": null @@ -4189,30 +4701,24 @@ "constant": false, "inputs": [ { - "name": "unsignedTx1", - "type": "bytes" - }, - { - "name": "signature1", - "type": "bytes" - }, - { - "name": "unsignedTx2", - "type": "bytes" + "internalType": "address", + "name": "relayaddr", + "type": "address" }, { - "name": "signature2", - "type": "bytes" + "internalType": "uint256", + "name": "unstakeDelay", + "type": "uint256" } ], - "name": "penalizeRepeatedNonce", + "name": "stake", "outputs": [], - "payable": false, - "stateMutability": "nonpayable", + "payable": true, + "stateMutability": "payable", "type": "function", "__signatureData": { - "method": "penalizeRepeatedNonce(bytes,bytes,bytes,bytes)", - "signature": "a8cd9572006f07cb5371172782eba6c734760b27217cb5a543459ccdc3f0e907", + "method": "stake(address,uint256)", + "signature": "adc9772e9f3b2218b39abb39e4dd00e4a7f4ca0809c2c3fd73a7011defd8a83f", "index": [], "indexed": 0, "eventSignature": null @@ -4222,48 +4728,46 @@ "constant": false, "inputs": [ { - "name": "unsignedTx", - "type": "bytes" - }, - { - "name": "signature", - "type": "bytes" + "internalType": "address", + "name": "relay", + "type": "address" } ], - "name": "penalizeIllegalTransaction", + "name": "unstake", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "penalizeIllegalTransaction(bytes,bytes)", - "signature": "390024325e037b6652cf6827845a7b6df9dd6ccbdc6e998ee910139d10377ba2", + "method": "unstake(address)", + "signature": "f2888dbbb28494a57963b14340157c06ae31f99a08b1c349673e4a5ea3324f07", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "from", - "type": "address" - } - ], - "name": "getNonce", - "outputs": [ - { - "name": "", + "internalType": "uint256", + "name": "amount", "type": "uint256" + }, + { + "internalType": "address payable", + "name": "dest", + "type": "address" } ], + "name": "withdraw", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "getNonce(address)", - "signature": "2d0335aba15fb7c7be0e001e3b72649542ef9da34ad10a6b12ac499aca97bf03", + "method": "withdraw(uint256,address)", + "signature": "00f714ce93c4a188ecc0c802ca78036f638c1c4b3ee9b98f3ed75364b45f50b1", "index": [], "indexed": 0, "eventSignature": null @@ -4273,26 +4777,32 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "operator", "type": "address" }, { + "internalType": "address", "name": "from", "type": "address" }, { + "internalType": "address", "name": "to", "type": "address" }, { + "internalType": "uint256", "name": "amount", "type": "uint256" }, { + "internalType": "bytes", "name": "userData", "type": "bytes" }, { + "internalType": "bytes", "name": "operatorData", "type": "bytes" } @@ -4314,26 +4824,32 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "operator", "type": "address" }, { + "internalType": "address", "name": "from", "type": "address" }, { + "internalType": "address", "name": "to", "type": "address" }, { + "internalType": "uint256", "name": "amount", "type": "uint256" }, { + "internalType": "bytes", "name": "userData", "type": "bytes" }, { + "internalType": "bytes", "name": "operatorData", "type": "bytes" } @@ -4352,21 +4868,22 @@ } }, { - "constant": true, - "inputs": [], - "name": "granularity", - "outputs": [ + "constant": false, + "inputs": [ { - "name": "", - "type": "uint256" + "internalType": "address", + "name": "operator", + "type": "address" } ], + "name": "authorizeOperator", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "granularity()", - "signature": "556f0dc7c27917e5fbcf81d768e3f14e5e91388a9bbf5489fc807a3b25713a85", + "method": "authorizeOperator(address)", + "signature": "959b8c3fa5f1ac78a7061180563d67096686864ae5178e2a1c5dc4cafe65647f", "index": [], "indexed": 0, "eventSignature": null @@ -4376,6 +4893,7 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "owner", "type": "address" } @@ -4383,6 +4901,7 @@ "name": "balanceOf", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -4402,51 +4921,68 @@ "constant": false, "inputs": [ { - "name": "recipient", - "type": "address" - }, - { + "internalType": "uint256", "name": "amount", "type": "uint256" }, { + "internalType": "bytes", "name": "data", "type": "bytes" } ], - "name": "send", + "name": "burn", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "send(address,uint256,bytes)", - "signature": "9bd9bbc68c9d2d57236e56ab2cc196bd1614295e6e32ba6eba9004e8c27143b6", + "method": "burn(uint256,bytes)", + "signature": "fe9d9303e79d04e189cef961eb7b3ed8271cbefc87b5bc7f1e67dff4a0c724a1", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, - "inputs": [ + "constant": true, + "inputs": [], + "name": "defaultOperators", + "outputs": [ { - "name": "amount", - "type": "uint256" - }, + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "defaultOperators()", + "signature": "06e485385cf29deb9a8a1b7063b1318c309eaf898f126cfc9db7a541554a38e8", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "granularity", + "outputs": [ { - "name": "data", - "type": "bytes" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "burn", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "burn(uint256,bytes)", - "signature": "fe9d9303e79d04e189cef961eb7b3ed8271cbefc87b5bc7f1e67dff4a0c724a1", + "method": "granularity()", + "signature": "556f0dc7c27917e5fbcf81d768e3f14e5e91388a9bbf5489fc807a3b25713a85", "index": [], "indexed": 0, "eventSignature": null @@ -4456,10 +4992,12 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "operator", "type": "address" }, { + "internalType": "address", "name": "tokenHolder", "type": "address" } @@ -4467,6 +5005,7 @@ "name": "isOperatorFor", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -4486,60 +5025,34 @@ "constant": false, "inputs": [ { - "name": "operator", + "internalType": "address", + "name": "account", "type": "address" - } - ], - "name": "authorizeOperator", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "__signatureData": { - "method": "authorizeOperator(address)", - "signature": "959b8c3fa5f1ac78a7061180563d67096686864ae5178e2a1c5dc4cafe65647f", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": false, - "inputs": [ + }, { - "name": "operator", - "type": "address" + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "operatorData", + "type": "bytes" } ], - "name": "revokeOperator", + "name": "operatorBurn", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "revokeOperator(address)", - "signature": "fad8b32a12ce11ea2887e7e753dadc4570ca76ac4dc839eae40921f5ca040305", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": true, - "inputs": [], - "name": "defaultOperators", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "__signatureData": { - "method": "defaultOperators()", - "signature": "06e485385cf29deb9a8a1b7063b1318c309eaf898f126cfc9db7a541554a38e8", + "method": "operatorBurn(address,uint256,bytes,bytes)", + "signature": "fc673c4f8d4aaaabaea06e9dd5779b22b049a95ce54fdeba7078d6693e645c46", "index": [], "indexed": 0, "eventSignature": null @@ -4549,22 +5062,27 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "sender", "type": "address" }, { + "internalType": "address", "name": "recipient", "type": "address" }, { + "internalType": "uint256", "name": "amount", "type": "uint256" }, { + "internalType": "bytes", "name": "data", "type": "bytes" }, { + "internalType": "bytes", "name": "operatorData", "type": "bytes" } @@ -4586,30 +5104,51 @@ "constant": false, "inputs": [ { - "name": "account", + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "revokeOperator", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "revokeOperator(address)", + "signature": "fad8b32a12ce11ea2887e7e753dadc4570ca76ac4dc839eae40921f5ca040305", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "recipient", "type": "address" }, { + "internalType": "uint256", "name": "amount", "type": "uint256" }, { + "internalType": "bytes", "name": "data", "type": "bytes" - }, - { - "name": "operatorData", - "type": "bytes" } ], - "name": "operatorBurn", + "name": "send", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "operatorBurn(address,uint256,bytes,bytes)", - "signature": "fc673c4f8d4aaaabaea06e9dd5779b22b049a95ce54fdeba7078d6693e645c46", + "method": "send(address,uint256,bytes)", + "signature": "9bd9bbc68c9d2d57236e56ab2cc196bd1614295e6e32ba6eba9004e8c27143b6", "index": [], "indexed": 0, "eventSignature": null @@ -4619,18 +5158,22 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "operator", "type": "address" }, { + "internalType": "address", "name": "from", "type": "address" }, { + "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { + "internalType": "bytes", "name": "data", "type": "bytes" } @@ -4638,6 +5181,7 @@ "name": "onERC721Received", "outputs": [ { + "internalType": "bytes4", "name": "", "type": "bytes4" } @@ -4654,109 +5198,116 @@ } }, { - "constant": true, + "constant": false, "inputs": [ { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], - "name": "getApproved", - "outputs": [ - { - "name": "operator", - "type": "address" - } - ], + "name": "approve", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "getApproved(uint256)", - "signature": "081812fc55e34fdc7cf5d8b5cf4e3621fa6423fde952ec6ab24afdc0d85c0b2e", + "method": "approve(address,uint256)", + "signature": "095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "to", + "internalType": "address", + "name": "owner", "type": "address" - }, + } + ], + "name": "balanceOf", + "outputs": [ { - "name": "tokenId", + "internalType": "uint256", + "name": "balance", "type": "uint256" } ], - "name": "approve", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "approve(address,uint256)", - "signature": "095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", + "method": "balanceOf(address)", + "signature": "70a08231b98ef4ca268c9cc3f6b4590e4bfec28280db06bb5d45e689f2a360be", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { + "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], - "name": "transferFrom", - "outputs": [], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "transferFrom(address,address,uint256)", - "signature": "23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b", + "method": "getApproved(uint256)", + "signature": "081812fc55e34fdc7cf5d8b5cf4e3621fa6423fde952ec6ab24afdc0d85c0b2e", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "from", + "internalType": "address", + "name": "owner", "type": "address" }, { - "name": "to", + "internalType": "address", + "name": "operator", "type": "address" - }, + } + ], + "name": "isApprovedForAll", + "outputs": [ { - "name": "tokenId", - "type": "uint256" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "safeTransferFrom", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "safeTransferFrom(address,address,uint256)", - "signature": "42842e0eb38857a7775b4e7364b2775df7325074d088e7fb39590cd6281184ed", + "method": "isApprovedForAll(address,address)", + "signature": "e985e9c5c6636c6879256001057b28ccac7718ef0ac56553ff9b926452cab8a3", "index": [], "indexed": 0, "eventSignature": null @@ -4766,6 +5317,7 @@ "constant": true, "inputs": [ { + "internalType": "uint256", "name": "tokenId", "type": "uint256" } @@ -4773,6 +5325,7 @@ "name": "ownerOf", "outputs": [ { + "internalType": "address", "name": "owner", "type": "address" } @@ -4789,51 +5342,32 @@ } }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "owner", + "internalType": "address", + "name": "from", "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "balance", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "__signatureData": { - "method": "balanceOf(address)", - "signature": "70a08231b98ef4ca268c9cc3f6b4590e4bfec28280db06bb5d45e689f2a360be", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": false, - "inputs": [ + }, { - "name": "operator", + "internalType": "address", + "name": "to", "type": "address" }, { - "name": "_approved", - "type": "bool" + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" } ], - "name": "setApprovalForAll", + "name": "safeTransferFrom", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "setApprovalForAll(address,bool)", - "signature": "a22cb4651ab9570f89bb516380c40ce76762284fb1f21337ceaf6adab99e7d4a", + "method": "safeTransferFrom(address,address,uint256)", + "signature": "42842e0eb38857a7775b4e7364b2775df7325074d088e7fb39590cd6281184ed", "index": [], "indexed": 0, "eventSignature": null @@ -4843,18 +5377,22 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "from", "type": "address" }, { + "internalType": "address", "name": "to", "type": "address" }, { + "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { + "internalType": "bytes", "name": "data", "type": "bytes" } @@ -4873,30 +5411,27 @@ } }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "owner", - "type": "address" - }, - { + "internalType": "address", "name": "operator", "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ + }, { - "name": "", + "internalType": "bool", + "name": "_approved", "type": "bool" } ], + "name": "setApprovalForAll", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "isApprovedForAll(address,address)", - "signature": "e985e9c5c6636c6879256001057b28ccac7718ef0ac56553ff9b926452cab8a3", + "method": "setApprovalForAll(address,bool)", + "signature": "a22cb4651ab9570f89bb516380c40ce76762284fb1f21337ceaf6adab99e7d4a", "index": [], "indexed": 0, "eventSignature": null @@ -4906,6 +5441,7 @@ "constant": true, "inputs": [ { + "internalType": "uint256", "name": "tokenId", "type": "uint256" } @@ -4913,6 +5449,7 @@ "name": "tokenURI", "outputs": [ { + "internalType": "string", "name": "", "type": "string" } @@ -4929,21 +5466,51 @@ } }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "owner", + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", "type": "address" }, { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "transferFrom(address,address,uint256)", + "signature": "23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", "name": "index", "type": "uint256" } ], - "name": "tokenOfOwnerByIndex", + "name": "tokenByIndex", "outputs": [ { - "name": "tokenId", + "internalType": "uint256", + "name": "", "type": "uint256" } ], @@ -4951,8 +5518,8 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "tokenOfOwnerByIndex(address,uint256)", - "signature": "2f745c59a57ba1667616e5a9707eeaa36ec97c283ee24190b75d9c8d14bcb215", + "method": "tokenByIndex(uint256)", + "signature": "4f6ccce7c41aed90ec1f1887c4a821594c0f73758d8941d0ccaa2cde813b7298", "index": [], "indexed": 0, "eventSignature": null @@ -4962,14 +5529,21 @@ "constant": true, "inputs": [ { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", "name": "index", "type": "uint256" } ], - "name": "tokenByIndex", + "name": "tokenOfOwnerByIndex", "outputs": [ { - "name": "", + "internalType": "uint256", + "name": "tokenId", "type": "uint256" } ], @@ -4977,33 +5551,41 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "tokenByIndex(uint256)", - "signature": "4f6ccce7c41aed90ec1f1887c4a821594c0f73758d8941d0ccaa2cde813b7298", + "method": "tokenOfOwnerByIndex(address,uint256)", + "signature": "2f745c59a57ba1667616e5a9707eeaa36ec97c283ee24190b75d9c8d14bcb215", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" }, { - "name": "newManager", + "internalType": "bytes32", + "name": "interfaceHash", + "type": "bytes32" + } + ], + "name": "getInterfaceImplementer", + "outputs": [ + { + "internalType": "address", + "name": "", "type": "address" } ], - "name": "setManager", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "setManager(address,address)", - "signature": "5df8122f7e200b7f3718bd782c13bd84af63ca1e905e2a214189fde9d437916b", + "method": "getInterfaceImplementer(address,bytes32)", + "signature": "aabbb8ca5077ad77ee74d09abca69060954dc1e7e935c6125dbfbdac2f7cb4d5", "index": [], "indexed": 0, "eventSignature": null @@ -5013,6 +5595,7 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } @@ -5020,6 +5603,7 @@ "name": "getManager", "outputs": [ { + "internalType": "address", "name": "", "type": "address" } @@ -5036,29 +5620,33 @@ } }, { - "constant": false, + "constant": true, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" }, { - "name": "interfaceHash", - "type": "bytes32" - }, + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "implementsERC165Interface", + "outputs": [ { - "name": "implementer", - "type": "address" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "setInterfaceImplementer", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "setInterfaceImplementer(address,bytes32,address)", - "signature": "29965a1dd17c60032c757c6eac6dd148280625a6723b0f37a399c515773e824b", + "method": "implementsERC165Interface(address,bytes4)", + "signature": "f712f3e885feefd4d819ffb61e08e67f0090bc5a5fe8b38272e3134e9d255486", "index": [], "indexed": 0, "eventSignature": null @@ -5068,27 +5656,30 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" }, { - "name": "interfaceHash", - "type": "bytes32" + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" } ], - "name": "getInterfaceImplementer", + "name": "implementsERC165InterfaceNoCache", "outputs": [ { + "internalType": "bool", "name": "", - "type": "address" + "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "getInterfaceImplementer(address,bytes32)", - "signature": "aabbb8ca5077ad77ee74d09abca69060954dc1e7e935c6125dbfbdac2f7cb4d5", + "method": "implementsERC165InterfaceNoCache(address,bytes4)", + "signature": "b705676510cec9438fe759af9cd9a319054c29d249f48050897ff539683f9795", "index": [], "indexed": 0, "eventSignature": null @@ -5098,6 +5689,7 @@ "constant": true, "inputs": [ { + "internalType": "string", "name": "interfaceName", "type": "string" } @@ -5105,6 +5697,7 @@ "name": "interfaceHash", "outputs": [ { + "internalType": "bytes32", "name": "", "type": "bytes32" } @@ -5124,82 +5717,83 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" }, { - "name": "interfaceId", - "type": "bytes4" + "internalType": "bytes32", + "name": "interfaceHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "implementer", + "type": "address" } ], - "name": "updateERC165Cache", + "name": "setInterfaceImplementer", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "updateERC165Cache(address,bytes4)", - "signature": "a41e7d51c5b4eeba8079bc0f66285a2953e8d97cae9e56174001e47da6a65b9c", + "method": "setInterfaceImplementer(address,bytes32,address)", + "signature": "29965a1dd17c60032c757c6eac6dd148280625a6723b0f37a399c515773e824b", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" }, { - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "implementsERC165Interface", - "outputs": [ - { - "name": "", - "type": "bool" + "internalType": "address", + "name": "newManager", + "type": "address" } ], + "name": "setManager", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "implementsERC165Interface(address,bytes4)", - "signature": "f712f3e885feefd4d819ffb61e08e67f0090bc5a5fe8b38272e3134e9d255486", + "method": "setManager(address,address)", + "signature": "5df8122f7e200b7f3718bd782c13bd84af63ca1e905e2a214189fde9d437916b", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" }, { + "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], - "name": "implementsERC165InterfaceNoCache", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], + "name": "updateERC165Cache", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "implementsERC165InterfaceNoCache(address,bytes4)", - "signature": "b705676510cec9438fe759af9cd9a319054c29d249f48050897ff539683f9795", + "method": "updateERC165Cache(address,bytes4)", + "signature": "a41e7d51c5b4eeba8079bc0f66285a2953e8d97cae9e56174001e47da6a65b9c", "index": [], "indexed": 0, "eventSignature": null @@ -5209,10 +5803,12 @@ "constant": true, "inputs": [ { + "internalType": "bytes32", "name": "interfaceHash", "type": "bytes32" }, { + "internalType": "address", "name": "account", "type": "address" } @@ -5220,6 +5816,7 @@ "name": "canImplementInterfaceForAddress", "outputs": [ { + "internalType": "bytes32", "name": "", "type": "bytes32" } @@ -5235,42 +5832,70 @@ "eventSignature": null } }, + { + "inputs": [ + { + "internalType": "address", + "name": "trustedSigner", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor", + "__signatureData": { + "method": null, + "signature": null, + "index": [], + "indexed": 0, + "eventSignature": null + } + }, { "constant": true, "inputs": [ { + "internalType": "address", "name": "relay", "type": "address" }, { + "internalType": "address", "name": "from", "type": "address" }, { + "internalType": "bytes", "name": "encodedFunction", "type": "bytes" }, { + "internalType": "uint256", "name": "transactionFee", "type": "uint256" }, { + "internalType": "uint256", "name": "gasPrice", "type": "uint256" }, { + "internalType": "uint256", "name": "gasLimit", "type": "uint256" }, { + "internalType": "uint256", "name": "nonce", "type": "uint256" }, { + "internalType": "bytes", "name": "approvalData", "type": "bytes" }, { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -5278,10 +5903,12 @@ "name": "acceptRelayedCall", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" }, { + "internalType": "bytes", "name": "", "type": "bytes" } @@ -5297,12 +5924,29 @@ "eventSignature": null } }, + { + "constant": false, + "inputs": [], + "name": "mockFunction", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "mockFunction()", + "signature": "3e6fec04891cbf2adc4929f005c945b1df36c1cc70a0dc8cc4a2d30cd9526418", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, { "constant": true, "inputs": [], "name": "relayHubVersion", "outputs": [ { + "internalType": "string", "name": "", "type": "string" } @@ -5319,34 +5963,73 @@ } }, { + "constant": true, "inputs": [ { - "name": "trustedSigner", + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", "type": "address" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "acceptRelayedCall", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" } ], "payable": false, - "stateMutability": "nonpayable", - "type": "constructor", - "__signatureData": { - "method": null, - "signature": null, - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": false, - "inputs": [], - "name": "mockFunction", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "mockFunction()", - "signature": "3e6fec04891cbf2adc4929f005c945b1df36c1cc70a0dc8cc4a2d30cd9526418", + "method": "acceptRelayedCall(address,address,bytes,uint256,uint256,uint256,uint256,bytes,uint256)", + "signature": "83947ea009abe4215784fc013af935411a558f6cd2dcdea5f18d5c7c5b70d409", "index": [], "indexed": 0, "eventSignature": null @@ -5356,10 +6039,12 @@ "constant": false, "inputs": [ { + "internalType": "uint256", "name": "integerValue", "type": "uint256" }, { + "internalType": "string", "name": "stringValue", "type": "string" } @@ -5397,105 +6082,70 @@ "constant": false, "inputs": [ { - "name": "amount", - "type": "uint256" - }, - { - "name": "payee", + "internalType": "address", + "name": "newRelayHub", "type": "address" } ], - "name": "withdrawDeposits", + "name": "upgradeRelayHub", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "withdrawDeposits(uint256,address)", - "signature": "c2db1abe7daab30b890763961009183af86eaa71fa3c52bb95c0eb7fcb5fa447", + "method": "upgradeRelayHub(address)", + "signature": "9e30a590cf55a2684fb69e37b38b95cd1633e385ab5bf0e2a3e20ebf459a435f", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "", - "type": "address" - }, - { - "name": "", - "type": "address" - }, - { - "name": "", - "type": "bytes" - }, - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "bytes" - }, - { - "name": "", - "type": "uint256" - } - ], - "name": "acceptRelayedCall", - "outputs": [ - { - "name": "", + "internalType": "uint256", + "name": "amount", "type": "uint256" }, { - "name": "", - "type": "bytes" + "internalType": "address payable", + "name": "payee", + "type": "address" } ], + "name": "withdrawDeposits", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "acceptRelayedCall(address,address,bytes,uint256,uint256,uint256,uint256,bytes,uint256)", - "signature": "83947ea009abe4215784fc013af935411a558f6cd2dcdea5f18d5c7c5b70d409", + "method": "withdrawDeposits(uint256,address)", + "signature": "c2db1abe7daab30b890763961009183af86eaa71fa3c52bb95c0eb7fcb5fa447", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, "inputs": [ { - "name": "newRelayHub", - "type": "address" + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol", + "type": "string" } ], - "name": "upgradeRelayHub", - "outputs": [], "payable": false, "stateMutability": "nonpayable", - "type": "function", + "type": "constructor", "__signatureData": { - "method": "upgradeRelayHub(address)", - "signature": "9e30a590cf55a2684fb69e37b38b95cd1633e385ab5bf0e2a3e20ebf459a435f", + "method": null, + "signature": null, "index": [], "indexed": 0, "eventSignature": null @@ -5505,38 +6155,47 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "", "type": "address" }, { + "internalType": "address", "name": "from", "type": "address" }, { + "internalType": "bytes", "name": "", "type": "bytes" }, { + "internalType": "uint256", "name": "transactionFee", "type": "uint256" }, { + "internalType": "uint256", "name": "gasPrice", "type": "uint256" }, { + "internalType": "uint256", "name": "", "type": "uint256" }, { + "internalType": "uint256", "name": "", "type": "uint256" }, { + "internalType": "bytes", "name": "", "type": "bytes" }, { + "internalType": "uint256", "name": "maxPossibleCharge", "type": "uint256" } @@ -5544,10 +6203,12 @@ "name": "acceptRelayedCall", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" }, { + "internalType": "bytes", "name": "", "type": "bytes" } @@ -5563,32 +6224,11 @@ "eventSignature": null } }, - { - "inputs": [ - { - "name": "name", - "type": "string" - }, - { - "name": "symbol", - "type": "string" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor", - "__signatureData": { - "method": null, - "signature": null, - "index": [], - "indexed": 0, - "eventSignature": null - } - }, { "constant": false, "inputs": [ { + "internalType": "bool", "name": "acceptEther", "type": "bool" } @@ -5610,6 +6250,7 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "payee", "type": "address" } @@ -5631,102 +6272,119 @@ "constant": false, "inputs": [ { - "name": "account", + "internalType": "address", + "name": "value", "type": "address" } ], - "name": "senderFor", + "name": "add", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "senderFor(address)", - "signature": "d2de647410d4847f7c2b1c646e28e10e303c10f95d7ea6b94c082bb1f0e3ecb7", + "method": "add(address)", + "signature": "0a3b0a4f4c6e53dce3dbcad5614cb2ba3a0fa7326d03c5d64b4fa2d565492737", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "sender", + "internalType": "address", + "name": "value", "type": "address" } ], - "name": "registerSender", - "outputs": [], + "name": "contains", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "registerSender(address)", - "signature": "e1ecbd30d7fc280e866052e7dcf713aee64bd27db00680e3c2a450b3a12cdc9b", + "method": "contains(address)", + "signature": "5dbe47e8ca78eed3d66d96aca4f3e0a862618253931c531246f0c213ed4514f0", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, - "inputs": [ + "constant": true, + "inputs": [], + "name": "enumerate", + "outputs": [ { - "name": "account", - "type": "address" + "internalType": "address[]", + "name": "", + "type": "address[]" } ], - "name": "recipientFor", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "recipientFor(address)", - "signature": "e0eb21801a9f335a4e9352266bab2e6b992e028b46da9236c68c9f2542a7f511", + "method": "enumerate()", + "signature": "ff9f78b3d32de8be0e9bed68612f7fad3f116aa6e7cb3c7748d1c767bcd9106e", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "recipient", + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "get", + "outputs": [ + { + "internalType": "address", + "name": "", "type": "address" } ], - "name": "registerRecipient", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "registerRecipient(address)", - "signature": "a8badaa52238eb11dfd031f6bd091dc87027cccee31954f0c034484ab291848b", + "method": "get(uint256)", + "signature": "9507d39afbeea551419419942ed5557ba0354af969f9e49bd20406f7e288b0cb", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, - "inputs": [ + "constant": true, + "inputs": [], + "name": "length", + "outputs": [ { - "name": "shouldRevert", - "type": "bool" + "internalType": "uint256", + "name": "", + "type": "uint256" } ], - "name": "setShouldRevertSend", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "setShouldRevertSend(bool)", - "signature": "4e4ae5a5b23f28439d51fbfb428cbdda0d2cdff3b2e3e23d8d4220585c9de51f", + "method": "length()", + "signature": "1f7b6d32f0bcc43b847f7e5983c958ffeec06d939e79a1435064bb9c306d2f49", "index": [], "indexed": 0, "eventSignature": null @@ -5736,18 +6394,19 @@ "constant": false, "inputs": [ { - "name": "shouldRevert", - "type": "bool" + "internalType": "address", + "name": "value", + "type": "address" } ], - "name": "setShouldRevertReceive", + "name": "remove", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "setShouldRevertReceive(bool)", - "signature": "c97e18fc4ab503e6d34324fbfc4776260fe140688edfe560aefd77d967d4c768", + "method": "remove(address)", + "signature": "29092d0ea9bcb5211809a4aaa5b0ebb94e6bef61bfe589f02c6c6fb1b193ffab", "index": [], "indexed": 0, "eventSignature": null @@ -5757,30 +6416,29 @@ "constant": false, "inputs": [ { + "internalType": "contract IERC777", "name": "token", "type": "address" }, { - "name": "to", - "type": "address" - }, - { + "internalType": "uint256", "name": "amount", "type": "uint256" }, { + "internalType": "bytes", "name": "data", "type": "bytes" } ], - "name": "send", + "name": "burn", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "send(address,address,uint256,bytes)", - "signature": "3836ef89341d578005df6b940fd026a6f4c1208b46c3d4068921eb9aa76bcaac", + "method": "burn(address,uint256,bytes)", + "signature": "44d171878174aac90272ce2c6f833b41e25ed3c943a482d65cb93dce656c95cf", "index": [], "indexed": 0, "eventSignature": null @@ -5790,26 +6448,19 @@ "constant": false, "inputs": [ { - "name": "token", + "internalType": "address", + "name": "account", "type": "address" - }, - { - "name": "amount", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" } ], - "name": "burn", + "name": "recipientFor", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "burn(address,uint256,bytes)", - "signature": "44d171878174aac90272ce2c6f833b41e25ed3c943a482d65cb93dce656c95cf", + "method": "recipientFor(address)", + "signature": "e0eb21801a9f335a4e9352266bab2e6b992e028b46da9236c68c9f2542a7f511", "index": [], "indexed": 0, "eventSignature": null @@ -5819,27 +6470,41 @@ "constant": false, "inputs": [ { - "name": "spender", + "internalType": "address", + "name": "recipient", "type": "address" - }, - { - "name": "value", - "type": "uint256" } ], - "name": "approve", - "outputs": [ + "name": "registerRecipient", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "registerRecipient(address)", + "signature": "a8badaa52238eb11dfd031f6bd091dc87027cccee31954f0c034484ab291848b", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ { - "name": "", - "type": "bool" + "internalType": "address", + "name": "sender", + "type": "address" } ], + "name": "registerSender", + "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "approve(address,uint256)", - "signature": "095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", + "method": "registerSender(address)", + "signature": "e1ecbd30d7fc280e866052e7dcf713aee64bd27db00680e3c2a450b3a12cdc9b", "index": [], "indexed": 0, "eventSignature": null @@ -5849,108 +6514,100 @@ "constant": false, "inputs": [ { - "name": "holder", + "internalType": "contract IERC777", + "name": "token", "type": "address" }, { - "name": "recipient", + "internalType": "address", + "name": "to", "type": "address" }, { + "internalType": "uint256", "name": "amount", "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ + }, { - "name": "", - "type": "bool" + "internalType": "bytes", + "name": "data", + "type": "bytes" } ], + "name": "send", + "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "transferFrom(address,address,uint256)", - "signature": "23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b", + "method": "send(address,address,uint256,bytes)", + "signature": "3836ef89341d578005df6b940fd026a6f4c1208b46c3d4068921eb9aa76bcaac", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, - "inputs": [], - "name": "decimals", - "outputs": [ + "constant": false, + "inputs": [ { - "name": "", - "type": "uint8" + "internalType": "address", + "name": "account", + "type": "address" } ], + "name": "senderFor", + "outputs": [], "payable": false, - "stateMutability": "pure", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "decimals()", - "signature": "313ce567add4d438edf58b94ff345d7d38c45b17dfc0f947988d7819dca364f9", + "method": "senderFor(address)", + "signature": "d2de647410d4847f7c2b1c646e28e10e303c10f95d7ea6b94c082bb1f0e3ecb7", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "tokenHolder", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" + "internalType": "bool", + "name": "shouldRevert", + "type": "bool" } ], + "name": "setShouldRevertReceive", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "balanceOf(address)", - "signature": "70a08231b98ef4ca268c9cc3f6b4590e4bfec28280db06bb5d45e689f2a360be", + "method": "setShouldRevertReceive(bool)", + "signature": "c97e18fc4ab503e6d34324fbfc4776260fe140688edfe560aefd77d967d4c768", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "holder", - "type": "address" - }, - { - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "", - "type": "uint256" + "internalType": "bool", + "name": "shouldRevert", + "type": "bool" } ], + "name": "setShouldRevertSend", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "allowance(address,address)", - "signature": "dd62ed3e90e97b3d417db9c0c7522647811bafca5afc6694f143588d255fdfb4", + "method": "setShouldRevertSend(bool)", + "signature": "4e4ae5a5b23f28439d51fbfb428cbdda0d2cdff3b2e3e23d8d4220585c9de51f", "index": [], "indexed": 0, "eventSignature": null @@ -5959,22 +6616,27 @@ { "inputs": [ { + "internalType": "address", "name": "initialHolder", "type": "address" }, { + "internalType": "uint256", "name": "initialBalance", "type": "uint256" }, { + "internalType": "string", "name": "name", "type": "string" }, { + "internalType": "string", "name": "symbol", "type": "string" }, { + "internalType": "address[]", "name": "defaultOperators", "type": "address[]" } @@ -5991,85 +6653,98 @@ } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "operator", + "internalType": "address", + "name": "holder", "type": "address" }, { - "name": "to", + "internalType": "address", + "name": "spender", "type": "address" - }, + } + ], + "name": "allowance", + "outputs": [ { - "name": "amount", + "internalType": "uint256", + "name": "", "type": "uint256" - }, - { - "name": "userData", - "type": "bytes" - }, - { - "name": "operatorData", - "type": "bytes" } ], - "name": "mintInternal", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "mintInternal(address,address,uint256,bytes,bytes)", - "signature": "502f2b8bf932c1941842477fc372bca4834ddc436a253e93faba2990bc29a24b", + "method": "allowance(address,address)", + "signature": "dd62ed3e90e97b3d417db9c0c7522647811bafca5afc6694f143588d255fdfb4", "index": [], "indexed": 0, "eventSignature": null } }, { + "constant": false, "inputs": [ { - "name": "name", - "type": "string" - }, - { - "name": "symbol", - "type": "string" + "internalType": "address", + "name": "spender", + "type": "address" }, { - "name": "defaultOperators", - "type": "address[]" - } + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } ], "payable": false, "stateMutability": "nonpayable", - "type": "constructor", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "approve(address,uint256)", + "signature": "095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", "index": [], "indexed": 0, "eventSignature": null } }, { + "constant": false, "inputs": [ { - "name": "retval", - "type": "bytes4" + "internalType": "address", + "name": "holder", + "type": "address" }, { - "name": "reverts", - "type": "bool" + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" } ], + "name": "approveInternal", + "outputs": [], "payable": false, "stateMutability": "nonpayable", - "type": "constructor", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "approveInternal(address,address,uint256)", + "signature": "56189cb4bb0039044cf7457b35bad3a3c904d529b71d57f6f1feb2e19e3f5de8", "index": [], "indexed": 0, "eventSignature": null @@ -6079,23 +6754,25 @@ "constant": true, "inputs": [ { - "name": "tokenId", - "type": "uint256" + "internalType": "address", + "name": "tokenHolder", + "type": "address" } ], - "name": "getApproved", + "name": "balanceOf", "outputs": [ { + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "getApproved(uint256)", - "signature": "081812fc55e34fdc7cf5d8b5cf4e3621fa6423fde952ec6ab24afdc0d85c0b2e", + "method": "balanceOf(address)", + "signature": "70a08231b98ef4ca268c9cc3f6b4590e4bfec28280db06bb5d45e689f2a360be", "index": [], "indexed": 0, "eventSignature": null @@ -6103,25 +6780,21 @@ }, { "constant": true, - "inputs": [ - { - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", + "inputs": [], + "name": "decimals", "outputs": [ { + "internalType": "uint8", "name": "", - "type": "address" + "type": "uint8" } ], "payable": false, - "stateMutability": "view", + "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "ownerOf(uint256)", - "signature": "6352211e6566aa027e75ac9dbf2423197fbd9b82b9d981a3ab367d355866aa1c", + "method": "decimals()", + "signature": "313ce567add4d438edf58b94ff345d7d38c45b17dfc0f947988d7819dca364f9", "index": [], "indexed": 0, "eventSignature": null @@ -6131,22 +6804,39 @@ "constant": false, "inputs": [ { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", "name": "to", "type": "address" }, { - "name": "approved", - "type": "bool" + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "userData", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "operatorData", + "type": "bytes" } ], - "name": "setApprovalForAll", + "name": "mintInternal", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "setApprovalForAll(address,bool)", - "signature": "a22cb4651ab9570f89bb516380c40ce76762284fb1f21337ceaf6adab99e7d4a", + "method": "mintInternal(address,address,uint256,bytes,bytes)", + "signature": "502f2b8bf932c1941842477fc372bca4834ddc436a253e93faba2990bc29a24b", "index": [], "indexed": 0, "eventSignature": null @@ -6156,55 +6846,88 @@ "constant": false, "inputs": [ { - "name": "from", + "internalType": "address", + "name": "holder", "type": "address" }, { - "name": "to", + "internalType": "address", + "name": "recipient", "type": "address" }, { - "name": "tokenId", + "internalType": "uint256", + "name": "amount", "type": "uint256" - }, + } + ], + "name": "transferFrom", + "outputs": [ { - "name": "_data", - "type": "bytes" + "internalType": "bool", + "name": "", + "type": "bool" } ], - "name": "safeTransferFrom", - "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "safeTransferFrom(address,address,uint256,bytes)", - "signature": "b88d4fde60196325a28bb7f99a2582e0b46de55b18761e960c14ad7a32099465", + "method": "transferFrom(address,address,uint256)", + "signature": "23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, "inputs": [ { - "name": "to", - "type": "address" + "internalType": "string", + "name": "name", + "type": "string" }, { - "name": "tokenId", - "type": "uint256" + "internalType": "string", + "name": "symbol", + "type": "string" + }, + { + "internalType": "address[]", + "name": "defaultOperators", + "type": "address[]" } ], - "name": "mint", - "outputs": [], "payable": false, "stateMutability": "nonpayable", - "type": "function", + "type": "constructor", "__signatureData": { - "method": "mint(address,uint256)", - "signature": "40c10f19c047ae7dfa66d6312b683d2ea3dfbcb4159e96b967c5f4b0a86f2842", + "method": null, + "signature": null, + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "retval", + "type": "bytes4" + }, + { + "internalType": "bool", + "name": "reverts", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor", + "__signatureData": { + "method": null, + "signature": null, "index": [], "indexed": 0, "eventSignature": null @@ -6214,6 +6937,7 @@ "constant": false, "inputs": [ { + "internalType": "uint256", "name": "tokenId", "type": "uint256" } @@ -6235,6 +6959,7 @@ "constant": true, "inputs": [ { + "internalType": "uint256", "name": "tokenId", "type": "uint256" } @@ -6242,6 +6967,7 @@ "name": "exists", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -6258,54 +6984,28 @@ } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "to", - "type": "address" - }, - { + "internalType": "uint256", "name": "tokenId", "type": "uint256" - }, - { - "name": "_data", - "type": "bytes" } ], - "name": "safeMint", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "__signatureData": { - "method": "safeMint(address,uint256,bytes)", - "signature": "8832e6e3a1acdc3c7227cb5f382053393c98d26b7e85fded7d4a78732f9d7cdd", - "index": [], - "indexed": 0, - "eventSignature": null - } - }, - { - "constant": false, - "inputs": [ + "name": "getApproved", + "outputs": [ { - "name": "to", + "internalType": "address", + "name": "", "type": "address" - }, - { - "name": "tokenId", - "type": "uint256" } ], - "name": "safeMint", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "safeMint(address,uint256)", - "signature": "a144819463c3ba7c3be1edebec61a649b050f2192ad1964059becd97eb86bb4f", + "method": "getApproved(uint256)", + "signature": "081812fc55e34fdc7cf5d8b5cf4e3621fa6423fde952ec6ab24afdc0d85c0b2e", "index": [], "indexed": 0, "eventSignature": null @@ -6315,22 +7015,24 @@ "constant": false, "inputs": [ { - "name": "owner", + "internalType": "address", + "name": "to", "type": "address" }, { + "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], - "name": "burn", + "name": "mint", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "burn(address,uint256)", - "signature": "9dc29fac0ba6d4fc521c69c2b0c636d612e3343bc39ed934429b8876b0d12cba", + "method": "mint(address,uint256)", + "signature": "40c10f19c047ae7dfa66d6312b683d2ea3dfbcb4159e96b967c5f4b0a86f2842", "index": [], "indexed": 0, "eventSignature": null @@ -6340,27 +7042,25 @@ "constant": true, "inputs": [ { - "name": "owner", - "type": "address" - }, - { - "name": "index", + "internalType": "uint256", + "name": "tokenId", "type": "uint256" } ], - "name": "tokenOfOwnerByIndex", + "name": "ownerOf", "outputs": [ { + "internalType": "address", "name": "", - "type": "uint256" + "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "tokenOfOwnerByIndex(address,uint256)", - "signature": "2f745c59a57ba1667616e5a9707eeaa36ec97c283ee24190b75d9c8d14bcb215", + "method": "ownerOf(uint256)", + "signature": "6352211e6566aa027e75ac9dbf2423197fbd9b82b9d981a3ab367d355866aa1c", "index": [], "indexed": 0, "eventSignature": null @@ -6370,27 +7070,34 @@ "constant": false, "inputs": [ { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", "name": "to", "type": "address" }, { + "internalType": "uint256", "name": "tokenId", "type": "uint256" - } - ], - "name": "mint", - "outputs": [ + }, { - "name": "", - "type": "bool" + "internalType": "bytes", + "name": "_data", + "type": "bytes" } ], + "name": "safeTransferFrom", + "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "mint(address,uint256)", - "signature": "40c10f19c047ae7dfa66d6312b683d2ea3dfbcb4159e96b967c5f4b0a86f2842", + "method": "safeTransferFrom(address,address,uint256,bytes)", + "signature": "b88d4fde60196325a28bb7f99a2582e0b46de55b18761e960c14ad7a32099465", "index": [], "indexed": 0, "eventSignature": null @@ -6400,31 +7107,24 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "to", "type": "address" }, { - "name": "tokenId", - "type": "uint256" - }, - { - "name": "tokenURI", - "type": "string" - } - ], - "name": "mintWithTokenURI", - "outputs": [ - { - "name": "", + "internalType": "bool", + "name": "approved", "type": "bool" } ], + "name": "setApprovalForAll", + "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "mintWithTokenURI(address,uint256,string)", - "signature": "50bb4e7f0f69c56956eebe056f6b491fb7b811bfdb78ec5149e57eaba528b40a", + "method": "setApprovalForAll(address,bool)", + "signature": "a22cb4651ab9570f89bb516380c40ce76762284fb1f21337ceaf6adab99e7d4a", "index": [], "indexed": 0, "eventSignature": null @@ -6434,31 +7134,24 @@ "constant": false, "inputs": [ { - "name": "to", + "internalType": "address", + "name": "owner", "type": "address" }, { + "internalType": "uint256", "name": "tokenId", "type": "uint256" - }, - { - "name": "_data", - "type": "bytes" - } - ], - "name": "safeMint", - "outputs": [ - { - "name": "", - "type": "bool" } ], + "name": "burn", + "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "safeMint(address,uint256,bytes)", - "signature": "8832e6e3a1acdc3c7227cb5f382053393c98d26b7e85fded7d4a78732f9d7cdd", + "method": "burn(address,uint256)", + "signature": "9dc29fac0ba6d4fc521c69c2b0c636d612e3343bc39ed934429b8876b0d12cba", "index": [], "indexed": 0, "eventSignature": null @@ -6468,27 +7161,29 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "to", "type": "address" }, { + "internalType": "uint256", "name": "tokenId", "type": "uint256" - } - ], - "name": "safeMint", - "outputs": [ + }, { - "name": "", - "type": "bool" + "internalType": "bytes", + "name": "_data", + "type": "bytes" } ], + "name": "safeMint", + "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "safeMint(address,uint256)", - "signature": "a144819463c3ba7c3be1edebec61a649b050f2192ad1964059becd97eb86bb4f", + "method": "safeMint(address,uint256,bytes)", + "signature": "8832e6e3a1acdc3c7227cb5f382053393c98d26b7e85fded7d4a78732f9d7cdd", "index": [], "indexed": 0, "eventSignature": null @@ -6498,82 +7193,79 @@ "constant": false, "inputs": [ { - "name": "", - "type": "address" - }, - { - "name": "", + "internalType": "address", + "name": "to", "type": "address" }, { - "name": "", + "internalType": "uint256", + "name": "tokenId", "type": "uint256" - }, - { - "name": "", - "type": "bytes" - } - ], - "name": "onERC721Received", - "outputs": [ - { - "name": "", - "type": "bytes4" } ], + "name": "safeMint", + "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "onERC721Received(address,address,uint256,bytes)", - "signature": "150b7a023d4804d13e8c85fb27262cb750cf6ba9f9dd3bb30d90f482ceeb4b1f", + "method": "safeMint(address,uint256)", + "signature": "a144819463c3ba7c3be1edebec61a649b050f2192ad1964059becd97eb86bb4f", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, - "inputs": [ + "constant": true, + "inputs": [], + "name": "baseURI", + "outputs": [ { - "name": "tokenId", - "type": "uint256" + "internalType": "string", + "name": "", + "type": "string" } ], - "name": "mint", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "mint(uint256)", - "signature": "a0712d680358d64f694230b7cc0b277c73686bdf768385d55cd7c547d0ffd30e", + "method": "baseURI()", + "signature": "6c0360ebdf68e0f62377a9a6e37fcfe105deb69715aa51e836946fccbad7b496", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "owner", + "internalType": "address", + "name": "to", "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" } ], - "name": "tokensOfOwner", + "name": "mint", "outputs": [ { + "internalType": "bool", "name": "", - "type": "uint256[]" + "type": "bool" } ], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "tokensOfOwner(address)", - "signature": "8462151cfcc0f257319f78db464014651918f3905b3d4bdab48d3f4618c542c1", + "method": "mint(address,uint256)", + "signature": "40c10f19c047ae7dfa66d6312b683d2ea3dfbcb4159e96b967c5f4b0a86f2842", "index": [], "indexed": 0, "eventSignature": null @@ -6583,52 +7275,73 @@ "constant": false, "inputs": [ { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { - "name": "uri", + "internalType": "string", + "name": "tokenURI", "type": "string" } ], - "name": "setTokenURI", - "outputs": [], + "name": "mintWithTokenURI", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "setTokenURI(uint256,string)", - "signature": "162094c41f9e614fbfeee6783490985e82953e56e0c70ba6d6e2c64564e7749b", + "method": "mintWithTokenURI(address,uint256,string)", + "signature": "50bb4e7f0f69c56956eebe056f6b491fb7b811bfdb78ec5149e57eaba528b40a", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "account", + "internalType": "address", + "name": "to", "type": "address" }, { - "name": "snapshotId", + "internalType": "uint256", + "name": "tokenId", "type": "uint256" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" } ], - "name": "balanceOfAt", + "name": "safeMint", "outputs": [ { + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "balanceOfAt(address,uint256)", - "signature": "4ee2cd7e1c8d0c67ae50486857122fadf743519435f10363a77120866023ee26", + "method": "safeMint(address,uint256,bytes)", + "signature": "8832e6e3a1acdc3c7227cb5f382053393c98d26b7e85fded7d4a78732f9d7cdd", "index": [], "indexed": 0, "eventSignature": null @@ -6636,20 +7349,32 @@ }, { "constant": false, - "inputs": [], - "name": "snapshot", + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeMint", "outputs": [ { + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "snapshot()", - "signature": "9711715ab0b9a0077d568e6c92e34beda766dfe07bfd405b99f6cc244fc5e675", + "method": "safeMint(address,uint256)", + "signature": "a144819463c3ba7c3be1edebec61a649b050f2192ad1964059becd97eb86bb4f", "index": [], "indexed": 0, "eventSignature": null @@ -6659,13 +7384,20 @@ "constant": true, "inputs": [ { - "name": "snapshotId", + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "index", "type": "uint256" } ], - "name": "totalSupplyAt", + "name": "tokenOfOwnerByIndex", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -6674,30 +7406,51 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "totalSupplyAt(uint256)", - "signature": "981b24d030c40d3021134f151d398b787f7448aa6078c0c9b5ff98879d39a725", + "method": "tokenOfOwnerByIndex(address,uint256)", + "signature": "2f745c59a57ba1667616e5a9707eeaa36ec97c283ee24190b75d9c8d14bcb215", "index": [], "indexed": 0, "eventSignature": null } }, { + "constant": false, "inputs": [ { - "name": "initialAccount", + "internalType": "address", + "name": "", "type": "address" }, { - "name": "initialBalance", + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" } ], "payable": false, "stateMutability": "nonpayable", - "type": "constructor", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "onERC721Received(address,address,uint256,bytes)", + "signature": "150b7a023d4804d13e8c85fb27262cb750cf6ba9f9dd3bb30d90f482ceeb4b1f", "index": [], "indexed": 0, "eventSignature": null @@ -6707,22 +7460,19 @@ "constant": false, "inputs": [ { - "name": "account", - "type": "address" - }, - { - "name": "amount", + "internalType": "uint256", + "name": "tokenId", "type": "uint256" } ], - "name": "burn", + "name": "mint", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "burn(address,uint256)", - "signature": "9dc29fac0ba6d4fc521c69c2b0c636d612e3343bc39ed934429b8876b0d12cba", + "method": "mint(uint256)", + "signature": "a0712d680358d64f694230b7cc0b277c73686bdf768385d55cd7c547d0ffd30e", "index": [], "indexed": 0, "eventSignature": null @@ -6732,27 +7482,19 @@ "constant": false, "inputs": [ { - "name": "", - "type": "address" - }, - { - "name": "", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "", - "type": "bool" + "internalType": "string", + "name": "baseURI", + "type": "string" } ], + "name": "setBaseURI", + "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "transfer(address,uint256)", - "signature": "a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "method": "setBaseURI(string)", + "signature": "55f804b373ab21b346f6f172ca5e118cfcad05163bcea59b35420499bf7e074b", "index": [], "indexed": 0, "eventSignature": null @@ -6762,81 +7504,99 @@ "constant": false, "inputs": [ { - "name": "", - "type": "address" - }, - { - "name": "", - "type": "address" - }, - { - "name": "", + "internalType": "uint256", + "name": "tokenId", "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ + }, { - "name": "", - "type": "bool" + "internalType": "string", + "name": "uri", + "type": "string" } ], + "name": "setTokenURI", + "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "transferFrom(address,address,uint256)", - "signature": "23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b", + "method": "setTokenURI(uint256,string)", + "signature": "162094c41f9e614fbfeee6783490985e82953e56e0c70ba6d6e2c64564e7749b", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "", + "internalType": "address", + "name": "owner", "type": "address" - }, - { - "name": "", - "type": "uint256" } ], - "name": "approve", + "name": "tokensOfOwner", "outputs": [ { + "internalType": "uint256[]", "name": "", - "type": "bool" + "type": "uint256[]" } ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "approve(address,uint256)", - "signature": "095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", + "method": "tokensOfOwner(address)", + "signature": "8462151cfcc0f257319f78db464014651918f3905b3d4bdab48d3f4618c542c1", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, "inputs": [ { - "name": "owner", + "internalType": "address", + "name": "initialAccount", "type": "address" }, { - "name": "", + "internalType": "uint256", + "name": "initialBalance", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor", + "__signatureData": { + "method": null, + "signature": null, + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "account", "type": "address" + }, + { + "internalType": "uint256", + "name": "snapshotId", + "type": "uint256" } ], - "name": "allowance", + "name": "balanceOfAt", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -6845,28 +7605,75 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "allowance(address,address)", - "signature": "dd62ed3e90e97b3d417db9c0c7522647811bafca5afc6694f143588d255fdfb4", + "method": "balanceOfAt(address,uint256)", + "signature": "4ee2cd7e1c8d0c67ae50486857122fadf743519435f10363a77120866023ee26", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "", + "internalType": "address", + "name": "account", "type": "address" }, { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "burn(address,uint256)", + "signature": "9dc29fac0ba6d4fc521c69c2b0c636d612e3343bc39ed934429b8876b0d12cba", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [], + "name": "snapshot", + "outputs": [ + { + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], - "name": "allowance", + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "snapshot()", + "signature": "9711715ab0b9a0077d568e6c92e34beda766dfe07bfd405b99f6cc244fc5e675", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "snapshotId", + "type": "uint256" + } + ], + "name": "totalSupplyAt", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -6875,42 +7682,41 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "allowance(address,address)", - "signature": "dd62ed3e90e97b3d417db9c0c7522647811bafca5afc6694f143588d255fdfb4", + "method": "totalSupplyAt(uint256)", + "signature": "981b24d030c40d3021134f151d398b787f7448aa6078c0c9b5ff98879d39a725", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "from", + "internalType": "address", + "name": "owner", "type": "address" }, { - "name": "to", + "internalType": "address", + "name": "", "type": "address" - }, - { - "name": "value", - "type": "uint256" } ], - "name": "transferFrom", + "name": "allowance", "outputs": [ { + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "transferFrom(address,address,uint256)", - "signature": "23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b", + "method": "allowance(address,address)", + "signature": "dd62ed3e90e97b3d417db9c0c7522647811bafca5afc6694f143588d255fdfb4", "index": [], "indexed": 0, "eventSignature": null @@ -6920,17 +7726,20 @@ "constant": false, "inputs": [ { - "name": "to", + "internalType": "address", + "name": "", "type": "address" }, { - "name": "value", + "internalType": "uint256", + "name": "", "type": "uint256" } ], - "name": "transfer", + "name": "approve", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -6939,8 +7748,8 @@ "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "transfer(address,uint256)", - "signature": "a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "method": "approve(address,uint256)", + "signature": "095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", "index": [], "indexed": 0, "eventSignature": null @@ -6950,16 +7759,24 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "", "type": "address" }, { + "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "transfer", - "outputs": [], + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "payable": false, "stateMutability": "nonpayable", "type": "function", @@ -6975,20 +7792,29 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "", "type": "address" }, { + "internalType": "address", "name": "", "type": "address" }, { + "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "transferFrom", - "outputs": [], + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "payable": false, "stateMutability": "nonpayable", "type": "function", @@ -7001,25 +7827,33 @@ } }, { - "constant": false, + "constant": true, "inputs": [ { + "internalType": "address", "name": "", "type": "address" }, { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", "name": "", "type": "uint256" } ], - "name": "approve", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "approve(address,uint256)", - "signature": "095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", + "method": "allowance(address,address)", + "signature": "dd62ed3e90e97b3d417db9c0c7522647811bafca5afc6694f143588d255fdfb4", "index": [], "indexed": 0, "eventSignature": null @@ -7029,22 +7863,30 @@ "constant": false, "inputs": [ { - "name": "account", + "internalType": "address", + "name": "to", "type": "address" }, { - "name": "amount", + "internalType": "uint256", + "name": "value", "type": "uint256" } ], - "name": "burnFrom", - "outputs": [], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "burnFrom(address,uint256)", - "signature": "79cc679044ee9a2021f0a26c0fdec02ac39179cd005bb971a471b7f9f17c576c", + "method": "transfer(address,uint256)", + "signature": "a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", "index": [], "indexed": 0, "eventSignature": null @@ -7054,26 +7896,35 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "from", "type": "address" }, { + "internalType": "address", "name": "to", "type": "address" }, { + "internalType": "uint256", "name": "value", "type": "uint256" } ], - "name": "transferInternal", - "outputs": [], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "transferInternal(address,address,uint256)", - "signature": "222f5be0bd00bd3dd5e6049849cd873ce8050d883a1eb2e7e638a8decfcc8274", + "method": "transferFrom(address,address,uint256)", + "signature": "23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b", "index": [], "indexed": 0, "eventSignature": null @@ -7083,86 +7934,115 @@ "constant": false, "inputs": [ { - "name": "owner", - "type": "address" - }, - { - "name": "spender", + "internalType": "address", + "name": "", "type": "address" }, { - "name": "value", + "internalType": "uint256", + "name": "", "type": "uint256" } ], - "name": "approveInternal", + "name": "approve", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "approveInternal(address,address,uint256)", - "signature": "56189cb4bb0039044cf7457b35bad3a3c904d529b71d57f6f1feb2e19e3f5de8", + "method": "approve(address,uint256)", + "signature": "095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", "index": [], "indexed": 0, "eventSignature": null } }, { + "constant": false, "inputs": [ { - "name": "legacyToken", + "internalType": "address", + "name": "", "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" } ], + "name": "transfer", + "outputs": [], "payable": false, "stateMutability": "nonpayable", - "type": "constructor", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "transfer(address,uint256)", + "signature": "a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, - "inputs": [], - "name": "legacyToken", - "outputs": [ + "constant": false, + "inputs": [ { + "internalType": "address", "name": "", "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" } ], + "name": "transferFrom", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "legacyToken()", - "signature": "13155455fdd7b3e23ed7eb19d62c49190033e226c08f6bd47d87abf5144f8724", + "method": "transferFrom(address,address,uint256)", + "signature": "23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, - "inputs": [], - "name": "newToken", - "outputs": [ + "constant": false, + "inputs": [ { - "name": "", + "internalType": "address", + "name": "owner", "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" } ], + "name": "approveInternal", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "newToken()", - "signature": "c42bd05aac0f1127e273477372cf897c16d1abfc362babf9af66a2496160f546", + "method": "approveInternal(address,address,uint256)", + "signature": "56189cb4bb0039044cf7457b35bad3a3c904d529b71d57f6f1feb2e19e3f5de8", "index": [], "indexed": 0, "eventSignature": null @@ -7172,6 +8052,85 @@ "constant": false, "inputs": [ { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "burnFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "burnFrom(address,uint256)", + "signature": "79cc679044ee9a2021f0a26c0fdec02ac39179cd005bb971a471b7f9f17c576c", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferInternal", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "transferInternal(address,address,uint256)", + "signature": "222f5be0bd00bd3dd5e6049849cd873ce8050d883a1eb2e7e638a8decfcc8274", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "legacyToken", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor", + "__signatureData": { + "method": null, + "signature": null, + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "internalType": "contract ERC20Mintable", "name": "newToken_", "type": "address" } @@ -7189,14 +8148,38 @@ "eventSignature": null } }, + { + "constant": true, + "inputs": [], + "name": "legacyToken", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "legacyToken()", + "signature": "13155455fdd7b3e23ed7eb19d62c49190033e226c08f6bd47d87abf5144f8724", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, { "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" }, { + "internalType": "uint256", "name": "amount", "type": "uint256" } @@ -7218,6 +8201,7 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } @@ -7238,19 +8222,20 @@ { "constant": true, "inputs": [], - "name": "tokenURI", + "name": "newToken", "outputs": [ { + "internalType": "contract IERC20", "name": "", - "type": "string" + "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "tokenURI()", - "signature": "3c130d90a3a3102bb1d43caeb4a43be8c3d9837b9c8f5a1bae2d0b50edd19a88", + "method": "newToken()", + "signature": "c42bd05aac0f1127e273477372cf897c16d1abfc362babf9af66a2496160f546", "index": [], "indexed": 0, "eventSignature": null @@ -7259,6 +8244,7 @@ { "inputs": [ { + "internalType": "string", "name": "tokenURI", "type": "string" } @@ -7278,6 +8264,7 @@ "constant": false, "inputs": [ { + "internalType": "string", "name": "tokenURI", "type": "string" } @@ -7295,9 +8282,32 @@ "eventSignature": null } }, + { + "constant": true, + "inputs": [], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "tokenURI()", + "signature": "3c130d90a3a3102bb1d43caeb4a43be8c3d9837b9c8f5a1bae2d0b50edd19a88", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, { "inputs": [ { + "internalType": "string", "name": "tokenURI_", "type": "string" } @@ -7316,6 +8326,7 @@ { "inputs": [ { + "internalType": "uint256", "name": "cap", "type": "uint256" } @@ -7335,6 +8346,7 @@ "constant": false, "inputs": [ { + "internalType": "uint256", "name": "amount", "type": "uint256" } @@ -7356,10 +8368,12 @@ "constant": false, "inputs": [ { + "internalType": "bytes32", "name": "interfaceHash", "type": "bytes32" }, { + "internalType": "address", "name": "account", "type": "address" } @@ -7381,6 +8395,7 @@ "constant": false, "inputs": [ { + "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } @@ -7401,6 +8416,7 @@ { "inputs": [ { + "internalType": "bytes4[]", "name": "interfaceIds", "type": "bytes4[]" } @@ -7420,6 +8436,40 @@ "constant": true, "inputs": [ { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes4[]", + "name": "interfaceIds", + "type": "bytes4[]" + } + ], + "name": "supportsAllInterfaces", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "supportsAllInterfaces(address,bytes4[])", + "signature": "4b9dd904cb078ee1a08f706b8d4b358c6527421833dd4e03e307a6d08c4c65ec", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", "name": "account", "type": "address" } @@ -7427,6 +8477,7 @@ "name": "supportsERC165", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -7446,17 +8497,20 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" }, { - "name": "interfaceIds", - "type": "bytes4[]" + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" } ], - "name": "supportsAllInterfaces", + "name": "supportsInterface", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -7465,8 +8519,8 @@ "stateMutability": "view", "type": "function", "__signatureData": { - "method": "supportsAllInterfaces(address,bytes4[])", - "signature": "4b9dd904cb078ee1a08f706b8d4b358c6527421833dd4e03e307a6d08c4c65ec", + "method": "supportsInterface(address,bytes4)", + "signature": "d905700708d92a2c508e53fc47c1f4f3376feb686c0c8272b33827f8f33874a3", "index": [], "indexed": 0, "eventSignature": null @@ -7476,10 +8530,12 @@ "constant": true, "inputs": [ { + "internalType": "bytes32", "name": "hash", "type": "bytes32" }, { + "internalType": "bytes", "name": "signature", "type": "bytes" } @@ -7487,6 +8543,7 @@ "name": "recover", "outputs": [ { + "internalType": "address", "name": "", "type": "address" } @@ -7506,6 +8563,7 @@ "constant": true, "inputs": [ { + "internalType": "bytes32", "name": "hash", "type": "bytes32" } @@ -7513,6 +8571,7 @@ "name": "toEthSignedMessageHash", "outputs": [ { + "internalType": "bytes32", "name": "", "type": "bytes32" } @@ -7530,36 +8589,70 @@ }, { "constant": true, - "inputs": [], - "name": "current", + "inputs": [ + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "code", + "type": "bytes" + }, + { + "internalType": "address", + "name": "deployer", + "type": "address" + } + ], + "name": "computeAddress", "outputs": [ { + "internalType": "address", "name": "", - "type": "uint256" + "type": "address" } ], "payable": false, - "stateMutability": "view", + "stateMutability": "pure", "type": "function", "__signatureData": { - "method": "current()", - "signature": "9fa6a6e3d57c048b1cb13cac09ada19955f823fbf9cbc036d48b820ea08fd246", + "method": "computeAddress(bytes32,bytes,address)", + "signature": "a31809787a81476f538b261e18e5fce04d85a858ff5e8043962669bd9aaffc9f", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, - "inputs": [], - "name": "increment", - "outputs": [], + "constant": true, + "inputs": [ + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "code", + "type": "bytes" + } + ], + "name": "computeAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "increment()", - "signature": "d09de08ab1a974aadf0a76e6f99a2ec20e431f22bbc101a6c3f718e53646ed8d", + "method": "computeAddress(bytes32,bytes)", + "signature": "ca9ffe94145c8771be124ced2e9b2c40e89d5b5afa9e58c1e854fa93a3427c60", "index": [], "indexed": 0, "eventSignature": null @@ -7567,15 +8660,26 @@ }, { "constant": false, - "inputs": [], - "name": "decrement", + "inputs": [ + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "code", + "type": "bytes" + } + ], + "name": "deploy", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "decrement()", - "signature": "2baeceb7defb31e1c8c859f0ad17299dba2cefa354c4852eb3e2d5efad2f8611", + "method": "deploy(bytes32,bytes)", + "signature": "cdcb760ad3353af7c88d45984aeedfae199631256006e32076b2a1693a759efb", "index": [], "indexed": 0, "eventSignature": null @@ -7585,47 +8689,127 @@ "constant": false, "inputs": [ { - "name": "context", - "type": "address" + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" } ], - "name": "callSender", + "name": "deployERC20", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "callSender(address)", - "signature": "3207ad9626aa3e7418cf450b31eddae82faa3c1c2ac6af8831f4698cc851aac2", + "method": "deployERC20(bytes32)", + "signature": "f48fdcd342899e890764a42694e31403aeb5881666d6c5c39075fe6cd4c580cf", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, - "inputs": [ - { - "name": "context", - "type": "address" - }, + "constant": true, + "inputs": [], + "name": "current", + "outputs": [ { - "name": "integerValue", + "internalType": "uint256", + "name": "", "type": "uint256" - }, - { - "name": "stringValue", - "type": "string" } ], - "name": "callData", + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "current()", + "signature": "9fa6a6e3d57c048b1cb13cac09ada19955f823fbf9cbc036d48b820ea08fd246", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [], + "name": "decrement", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "callData(address,uint256,string)", - "signature": "00860459816b29739ac426ab214bc2685ba3f4c418cc4cd43e6a2302a3a6f424", + "method": "decrement()", + "signature": "2baeceb7defb31e1c8c859f0ad17299dba2cefa354c4852eb3e2d5efad2f8611", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [], + "name": "increment", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "increment()", + "signature": "d09de08ab1a974aadf0a76e6f99a2ec20e431f22bbc101a6c3f718e53646ed8d", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "internalType": "contract ContextMock", + "name": "context", + "type": "address" + }, + { + "internalType": "uint256", + "name": "integerValue", + "type": "uint256" + }, + { + "internalType": "string", + "name": "stringValue", + "type": "string" + } + ], + "name": "callData", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "callData(address,uint256,string)", + "signature": "00860459816b29739ac426ab214bc2685ba3f4c418cc4cd43e6a2302a3a6f424", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "internalType": "contract ContextMock", + "name": "context", + "type": "address" + } + ], + "name": "callSender", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "callSender(address)", + "signature": "3207ad9626aa3e7418cf450b31eddae82faa3c1c2ac6af8831f4698cc851aac2", "index": [], "indexed": 0, "eventSignature": null @@ -7635,10 +8819,12 @@ "constant": false, "inputs": [ { + "internalType": "address", "name": "payee", "type": "address" }, { + "internalType": "bool", "name": "allowed", "type": "bool" } @@ -7660,6 +8846,7 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "payee", "type": "address" } @@ -7667,6 +8854,7 @@ "name": "withdrawalAllowed", "outputs": [ { + "internalType": "bool", "name": "", "type": "bool" } @@ -7685,18 +8873,22 @@ { "inputs": [ { + "internalType": "uint256", "name": "rate", "type": "uint256" }, { + "internalType": "address payable", "name": "wallet", "type": "address" }, { + "internalType": "contract IERC20", "name": "token", "type": "address" }, { + "internalType": "uint256", "name": "cap", "type": "uint256" } @@ -7715,6 +8907,7 @@ { "inputs": [ { + "internalType": "uint256[]", "name": "_array", "type": "uint256[]" } @@ -7734,6 +8927,7 @@ "constant": true, "inputs": [ { + "internalType": "uint256", "name": "_element", "type": "uint256" } @@ -7741,6 +8935,7 @@ "name": "findUpperBound", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -7756,12 +8951,47 @@ "eventSignature": null } }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "rate", + "type": "uint256" + }, + { + "internalType": "address payable", + "name": "wallet", + "type": "address" + }, + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenWallet", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor", + "__signatureData": { + "method": null, + "signature": null, + "index": [], + "indexed": 0, + "eventSignature": null + } + }, { "constant": true, "inputs": [], "name": "remainingTokens", "outputs": [ { + "internalType": "uint256", "name": "", "type": "uint256" } @@ -7783,6 +9013,7 @@ "name": "tokenWallet", "outputs": [ { + "internalType": "address", "name": "", "type": "address" } @@ -7801,18 +9032,7 @@ { "inputs": [ { - "name": "rate", - "type": "uint256" - }, - { - "name": "wallet", - "type": "address" - }, - { - "name": "token", - "type": "address" - }, - { + "internalType": "address", "name": "tokenWallet", "type": "address" } @@ -7829,44 +9049,55 @@ } }, { + "constant": true, "inputs": [ { - "name": "tokenWallet", + "internalType": "address", + "name": "account", "type": "address" } ], + "name": "isContract", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], "payable": false, - "stateMutability": "nonpayable", - "type": "constructor", + "stateMutability": "view", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "isContract(address)", + "signature": "16279055d07f3f98da17007e489f07a8037a8763b169d601c4db770dec17dc13", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "account", + "internalType": "address payable", + "name": "receiver", "type": "address" - } - ], - "name": "isContract", - "outputs": [ + }, { - "name": "", - "type": "bool" + "internalType": "uint256", + "name": "amount", + "type": "uint256" } ], + "name": "sendValue", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "isContract(address)", - "signature": "16279055d07f3f98da17007e489f07a8037a8763b169d601c4db770dec17dc13", + "method": "sendValue(address,uint256)", + "signature": "24a084dfedb552881fe75e937a5b15c2822e1b879ff607c151ec3982f55dc07d", "index": [], "indexed": 0, "eventSignature": null @@ -7876,6 +9107,7 @@ "constant": true, "inputs": [ { + "internalType": "address", "name": "account", "type": "address" } @@ -7883,6 +9115,7 @@ "name": "toPayable", "outputs": [ { + "internalType": "address payable", "name": "", "type": "address" } @@ -7902,55 +9135,72 @@ "constant": false, "inputs": [ { - "name": "receiver", + "name": "_spender", "type": "address" }, { - "name": "amount", + "name": "_value", "type": "uint256" + }, + { + "name": "_extraData", + "type": "bytes" + } + ], + "name": "approveAndCall", + "outputs": [ + { + "name": "success", + "type": "bool" } ], - "name": "sendValue", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "sendValue(address,uint256)", - "signature": "24a084dfedb552881fe75e937a5b15c2822e1b879ff607c151ec3982f55dc07d", + "method": "approveAndCall(address,uint256,bytes)", + "signature": "cae9ca5133009d821214ac8231b3d170f22d822ee165adb631578070b6316fc9", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, - "inputs": [ + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ { - "name": "_spender", + "name": "", "type": "address" - }, - { - "name": "_value", - "type": "uint256" - }, - { - "name": "_extraData", - "type": "bytes" } ], - "name": "approveAndCall", + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "owner()", + "signature": "8da5cb5b36e7f68c1d2e56001220cdbdd3ba2616072f718acfda4a06441a807d", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "isOwner", "outputs": [ { - "name": "success", + "name": "", "type": "bool" } ], "payable": false, + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "approveAndCall(address,uint256,bytes)", - "signature": "cae9ca5133009d821214ac8231b3d170f22d822ee165adb631578070b6316fc9", + "method": "isOwner()", + "signature": "8f32d59b339b0965093e9a53b00f4400c41d72f026df85c0beaa1d49d97802ef", "index": [], "indexed": 0, "eventSignature": null @@ -8019,6 +9269,27 @@ "eventSignature": null } }, + { + "constant": false, + "inputs": [ + { + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "transferOwnership(address)", + "signature": "f2fde38b092330466c661fc723d5289b90272a3e580e3187d1d7ef788506c557", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, { "constant": true, "inputs": [], @@ -8750,18 +10021,1254 @@ "constant": false, "inputs": [ { - "name": "transactionId", - "type": "uint256" + "name": "transactionId", + "type": "uint256" + } + ], + "name": "confirmTransaction", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "confirmTransaction(uint256)", + "signature": "c01a8c8473427a14639d2bc8bef9d7b2742747740ed212950f4e530781dbdf5d", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "destination", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "submitTransaction", + "outputs": [ + { + "name": "transactionId", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "submitTransaction(address,uint256,bytes)", + "signature": "c6427474ff2c4baa130d285c9d32ec41c0e07b9cc4b5b273ab66f916faee964a", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "MAX_OWNER_COUNT", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "MAX_OWNER_COUNT()", + "signature": "d74f8edde535768f1ff54c90926dc3dbf92d9a622a8bef11a7b8190467308d77", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "required", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "required()", + "signature": "dc8452cd18861a7926d01a29fd774a76d0fc4e57278afa13cbc91639fcd16e1f", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "newOwner", + "type": "address" + } + ], + "name": "replaceOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "replaceOwner(address,address)", + "signature": "e20056e60a9f58b726b610d5a8e40f97e687707f2f9b3f9ccdaabe2ee85aa6d4", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "transactionId", + "type": "uint256" + } + ], + "name": "executeTransaction", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "executeTransaction(uint256)", + "signature": "ee22610b57af59171fe491c7d4d59b4d01c283e32b93b77db36266c6ad1b5877", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "inputs": [ + { + "name": "_owners", + "type": "address[]" + }, + { + "name": "_required", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor", + "__signatureData": { + "method": null, + "signature": null, + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "name": "operator", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "getApproved(uint256)", + "signature": "081812fc55e34fdc7cf5d8b5cf4e3621fa6423fde952ec6ab24afdc0d85c0b2e", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "approve(address,uint256)", + "signature": "095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "transferFrom(address,address,uint256)", + "signature": "23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "safeTransferFrom(address,address,uint256)", + "signature": "42842e0eb38857a7775b4e7364b2775df7325074d088e7fb39590cd6281184ed", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "name": "owner", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "ownerOf(uint256)", + "signature": "6352211e6566aa027e75ac9dbf2423197fbd9b82b9d981a3ab367d355866aa1c", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "balance", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "balanceOf(address)", + "signature": "70a08231b98ef4ca268c9cc3f6b4590e4bfec28280db06bb5d45e689f2a360be", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "operator", + "type": "address" + }, + { + "name": "_approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "setApprovalForAll(address,bool)", + "signature": "a22cb4651ab9570f89bb516380c40ce76762284fb1f21337ceaf6adab99e7d4a", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "tokenId", + "type": "uint256" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "safeTransferFrom(address,address,uint256,bytes)", + "signature": "b88d4fde60196325a28bb7f99a2582e0b46de55b18761e960c14ad7a32099465", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "isApprovedForAll(address,address)", + "signature": "e985e9c5c6636c6879256001057b28ccac7718ef0ac56553ff9b926452cab8a3", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "name()", + "signature": "06fdde0383f15d582d1a74511486c9ddf862a882fb7904b3d9fe9b8b8e58a796", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "symbol()", + "signature": "95d89b41e2f5f391a79ec54e9d87c79d6e777c63e32c28da95b4e9e4a79250ec", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "tokenURI(uint256)", + "signature": "c87b56dda752230262935940d907f047a9f86bb5ee6aa33511fc86db33fea6cc", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "totalSupply()", + "signature": "18160ddd7f15c72528c2f94fd8dfe3c8d5aa26e2c50c7d81f4bc7bee8d4b7932", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "index", + "type": "uint256" + } + ], + "name": "tokenOfOwnerByIndex", + "outputs": [ + { + "name": "tokenId", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "tokenOfOwnerByIndex(address,uint256)", + "signature": "2f745c59a57ba1667616e5a9707eeaa36ec97c283ee24190b75d9c8d14bcb215", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "name": "index", + "type": "uint256" + } + ], + "name": "tokenByIndex", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "tokenByIndex(uint256)", + "signature": "4f6ccce7c41aed90ec1f1887c4a821594c0f73758d8941d0ccaa2cde813b7298", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "indexed": false, + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "name": "_value", + "type": "uint256" + }, + { + "indexed": false, + "name": "_data", + "type": "bytes" + } + ], + "name": "transferAndCall", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "type": "function", + "__signatureData": { + "method": "transferAndCall(address,uint256,bytes)", + "signature": "4000aea038e4acde4ff65b413088ec658ae209bdf83ccba2ffbbaa2d9ce48cde", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "approve(address,uint256)", + "signature": "095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "sender", + "type": "address" + }, + { + "name": "recipient", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "transferFrom(address,address,uint256)", + "signature": "23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "increaseAllowance(address,uint256)", + "signature": "39509351d3325647dde3fdd3c8b249adfe89ef4f16d76d83768e6df7a5cd81d6", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "balanceOf(address)", + "signature": "70a08231b98ef4ca268c9cc3f6b4590e4bfec28280db06bb5d45e689f2a360be", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "decreaseAllowance(address,uint256)", + "signature": "a457c2d77307f80ff2f3ac810ec99eb18ae2cffee13b29c90c9324546e374be5", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "recipient", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "transfer(address,uint256)", + "signature": "a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "allowance(address,address)", + "signature": "dd62ed3e90e97b3d417db9c0c7522647811bafca5afc6694f143588d255fdfb4", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [], + "name": "snapshot", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "snapshot()", + "signature": "9711715ab0b9a0077d568e6c92e34beda766dfe07bfd405b99f6cc244fc5e675", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + }, + { + "name": "snapshotId", + "type": "uint256" + } + ], + "name": "balanceOfAt", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "balanceOfAt(address,uint256)", + "signature": "4ee2cd7e1c8d0c67ae50486857122fadf743519435f10363a77120866023ee26", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "name": "snapshotId", + "type": "uint256" + } + ], + "name": "totalSupplyAt", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "totalSupplyAt(uint256)", + "signature": "981b24d030c40d3021134f151d398b787f7448aa6078c0c9b5ff98879d39a725", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isPauser", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "isPauser(address)", + "signature": "46fbf68e9af4b174565acc7a5f5256df89a0019864cab4994b666e1897990183", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "paused", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "paused()", + "signature": "5c975abbf8c4d6efa68fc896e233763eb503f2318260b7bf59b19412913788b2", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addPauser", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "addPauser(address)", + "signature": "82dc1ec426f590f8e02fbc1e3fcd7395a4cc661900beaeea90dc088b2956fc37", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "transfer(address,uint256)", + "signature": "a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "transferFrom(address,address,uint256)", + "signature": "23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "addMinter", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "addMinter(address)", + "signature": "983b2d560bdd6b422e26073d9516b4646e2f1008810070c0d32b3a79aaa7bfcb", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "isMinter", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "isMinter(address)", + "signature": "aa271e1a9a41b51f5b4e2e4ce717c974174719a5ddc12cee839f0eabbdf42748", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "mint(address,uint256)", + "signature": "40c10f19c047ae7dfa66d6312b683d2ea3dfbcb4159e96b967c5f4b0a86f2842", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "inputs": [ + { + "name": "legacyToken", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor", + "__signatureData": { + "method": null, + "signature": null, + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "legacyToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "legacyToken()", + "signature": "13155455fdd7b3e23ed7eb19d62c49190033e226c08f6bd47d87abf5144f8724", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "newToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "newToken()", + "signature": "c42bd05aac0f1127e273477372cf897c16d1abfc362babf9af66a2496160f546", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "newToken_", + "type": "address" + } + ], + "name": "beginMigration", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "beginMigration(address)", + "signature": "104d2614802041eeb018bbccaeba548b9a7ee898af4bcd6e9cce457ec8960361", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "migrate", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "migrate(address,uint256)", + "signature": "ad68ebf738de8bb84d6664bd7e8367bb1eaee463836fc2757f2fe2d2dab8f178", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": false, + "inputs": [ + { + "name": "account", + "type": "address" + } + ], + "name": "migrateAll", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function", + "__signatureData": { + "method": "migrateAll(address)", + "signature": "5a8cadb1d8b081fcaa5d74a05a907b404a812656b318e7fbcb088fef3c652906", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "inputs": [ + { + "name": "tokenURI_", + "type": "string" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor", + "__signatureData": { + "method": null, + "signature": null, + "index": [], + "indexed": 0, + "eventSignature": null + } + }, + { + "constant": true, + "inputs": [], + "name": "tokenURI", + "outputs": [ + { + "name": "", + "type": "string" } ], - "name": "confirmTransaction", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "confirmTransaction(uint256)", - "signature": "c01a8c8473427a14639d2bc8bef9d7b2742747740ed212950f4e530781dbdf5d", + "method": "tokenURI()", + "signature": "3c130d90a3a3102bb1d43caeb4a43be8c3d9837b9c8f5a1bae2d0b50edd19a88", "index": [], "indexed": 0, "eventSignature": null @@ -8771,52 +11278,53 @@ "constant": false, "inputs": [ { - "name": "destination", + "name": "spender", "type": "address" }, { - "name": "value", + "name": "amount", "type": "uint256" - }, - { - "name": "data", - "type": "bytes" } ], - "name": "submitTransaction", + "name": "approve", "outputs": [ { - "name": "transactionId", - "type": "uint256" + "name": "", + "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "submitTransaction(address,uint256,bytes)", - "signature": "c6427474ff2c4baa130d285c9d32ec41c0e07b9cc4b5b273ab66f916faee964a", + "method": "approve(address,uint256)", + "signature": "095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, - "inputs": [], - "name": "MAX_OWNER_COUNT", - "outputs": [ + "inputs": [ { - "name": "", - "type": "uint256" + "name": "name", + "type": "string" + }, + { + "name": "symbol", + "type": "string" + }, + { + "name": "decimals", + "type": "uint8" } ], "payable": false, - "stateMutability": "view", - "type": "function", + "stateMutability": "nonpayable", + "type": "constructor", "__signatureData": { - "method": "MAX_OWNER_COUNT()", - "signature": "d74f8edde535768f1ff54c90926dc3dbf92d9a622a8bef11a7b8190467308d77", + "method": null, + "signature": null, "index": [], "indexed": 0, "eventSignature": null @@ -8825,123 +11333,104 @@ { "constant": true, "inputs": [], - "name": "required", + "name": "decimals", "outputs": [ { "name": "", - "type": "uint256" + "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function", "__signatureData": { - "method": "required()", - "signature": "dc8452cd18861a7926d01a29fd774a76d0fc4e57278afa13cbc91639fcd16e1f", + "method": "decimals()", + "signature": "313ce567add4d438edf58b94ff345d7d38c45b17dfc0f947988d7819dca364f9", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, "inputs": [ { - "name": "owner", - "type": "address" - }, - { - "name": "newOwner", - "type": "address" + "name": "cap", + "type": "uint256" } ], - "name": "replaceOwner", - "outputs": [], "payable": false, "stateMutability": "nonpayable", - "type": "function", + "type": "constructor", "__signatureData": { - "method": "replaceOwner(address,address)", - "signature": "e20056e60a9f58b726b610d5a8e40f97e687707f2f9b3f9ccdaabe2ee85aa6d4", + "method": null, + "signature": null, "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": false, - "inputs": [ + "constant": true, + "inputs": [], + "name": "cap", + "outputs": [ { - "name": "transactionId", + "name": "", "type": "uint256" } ], - "name": "executeTransaction", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function", "__signatureData": { - "method": "executeTransaction(uint256)", - "signature": "ee22610b57af59171fe491c7d4d59b4d01c283e32b93b77db36266c6ad1b5877", + "method": "cap()", + "signature": "355274ea4c5084069935a4456a1ac3001e99e7cb12c33ca22e251b993bb2c183", "index": [], "indexed": 0, "eventSignature": null } }, { + "constant": false, "inputs": [ { - "name": "_owners", - "type": "address[]" - }, - { - "name": "_required", + "name": "amount", "type": "uint256" } ], + "name": "burn", + "outputs": [], "payable": false, "stateMutability": "nonpayable", - "type": "constructor", + "type": "function", "__signatureData": { - "method": null, - "signature": null, + "method": "burn(uint256)", + "signature": "42966c689b5afe9b9b3f8a7103b2a19980d59629bfd6a20a60972312ed41d836", "index": [], "indexed": 0, "eventSignature": null } }, { - "constant": true, + "constant": false, "inputs": [ { - "indexed": false, - "name": "_to", + "name": "account", "type": "address" }, { - "indexed": false, - "name": "_value", + "name": "amount", "type": "uint256" - }, - { - "indexed": false, - "name": "_data", - "type": "bytes" - } - ], - "name": "transferAndCall", - "outputs": [ - { - "name": "", - "type": "bool" } ], + "name": "burnFrom", + "outputs": [], "payable": false, + "stateMutability": "nonpayable", "type": "function", "__signatureData": { - "method": "transferAndCall(address,uint256,bytes)", - "signature": "4000aea038e4acde4ff65b413088ec658ae209bdf83ccba2ffbbaa2d9ce48cde", + "method": "burnFrom(address,uint256)", + "signature": "79cc679044ee9a2021f0a26c0fdec02ac39179cd005bb971a471b7f9f17c576c", "index": [], "indexed": 0, "eventSignature": null @@ -9097,11 +11586,38 @@ "eventSignature": null } }, + { + "constant": true, + "inputs": [ + { + "name": "interfaceID", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function", + "__signatureData": { + "method": "supportsInterface(bytes4)", + "signature": "01ffc9a7a5cef8baa21ed3c5c0d7e23accb804b619e9333b597f47a0d84076e2", + "index": [], + "indexed": 0, + "eventSignature": null + } + }, { "anonymous": false, "inputs": [ { "indexed": false, + "internalType": "address", "name": "recipient", "type": "address" } @@ -9123,32 +11639,35 @@ "inputs": [ { "indexed": true, - "name": "from", + "internalType": "address", + "name": "owner", "type": "address" }, { "indexed": true, - "name": "to", + "internalType": "address", + "name": "spender", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "value", "type": "uint256" } ], - "name": "Transfer", + "name": "Approval", "type": "event", "__signatureData": { - "method": "Transfer(address,address,uint256)", - "signature": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "method": "Approval(address,address,uint256)", + "signature": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", "index": [ true, true, false ], "indexed": 2, - "eventSignature": "9c7b1a6ce28bcb017f375ee62692e394c7c01468f747d77cbe951f0a46cb7e46" + "eventSignature": "c7d8669ee07fb153b456cd2bed49219edf650afb6c1e089e795e213ca4636b63" } }, { @@ -9156,32 +11675,35 @@ "inputs": [ { "indexed": true, - "name": "owner", + "internalType": "address", + "name": "from", "type": "address" }, { "indexed": true, - "name": "spender", + "internalType": "address", + "name": "to", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "value", "type": "uint256" } ], - "name": "Approval", + "name": "Transfer", "type": "event", "__signatureData": { - "method": "Approval(address,address,uint256)", - "signature": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "method": "Transfer(address,address,uint256)", + "signature": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", "index": [ true, true, false ], "indexed": 2, - "eventSignature": "c7d8669ee07fb153b456cd2bed49219edf650afb6c1e089e795e213ca4636b63" + "eventSignature": "9c7b1a6ce28bcb017f375ee62692e394c7c01468f747d77cbe951f0a46cb7e46" } }, { @@ -9189,20 +11711,21 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "account", "type": "address" } ], - "name": "WhitelistedAdded", + "name": "WhitelistAdminAdded", "type": "event", "__signatureData": { - "method": "WhitelistedAdded(address)", - "signature": "ee1504a83b6d4a361f4c1dc78ab59bfa30d6a3b6612c403e86bb01ef2984295f", + "method": "WhitelistAdminAdded(address)", + "signature": "22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd20961299", "index": [ true ], "indexed": 1, - "eventSignature": "9336231e22b867dab5542040d04e8c6df785adbb1ac02b8cbfdc95a28161b471" + "eventSignature": "67e6989e2763f5f9748a52b2f1548ee9a7617d7148619b3ed57cd7ad4c89ce4d" } }, { @@ -9210,20 +11733,21 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "account", "type": "address" } ], - "name": "WhitelistedRemoved", + "name": "WhitelistAdminRemoved", "type": "event", "__signatureData": { - "method": "WhitelistedRemoved(address)", - "signature": "270d9b30cf5b0793bbfd54c9d5b94aeb49462b8148399000265144a8722da6b6", + "method": "WhitelistAdminRemoved(address)", + "signature": "0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e165", "index": [ true ], "indexed": 1, - "eventSignature": "3e172418151511c31245dc6615847969d48c97107b411294304772f374bcf0ad" + "eventSignature": "f64b031d2f6ff287e1c6f2bc038f511c7c8446b749c0140d3d21ad2192073933" } }, { @@ -9231,20 +11755,21 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "account", "type": "address" } ], - "name": "WhitelistAdminAdded", + "name": "WhitelistedAdded", "type": "event", "__signatureData": { - "method": "WhitelistAdminAdded(address)", - "signature": "22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd20961299", + "method": "WhitelistedAdded(address)", + "signature": "ee1504a83b6d4a361f4c1dc78ab59bfa30d6a3b6612c403e86bb01ef2984295f", "index": [ true ], "indexed": 1, - "eventSignature": "67e6989e2763f5f9748a52b2f1548ee9a7617d7148619b3ed57cd7ad4c89ce4d" + "eventSignature": "9336231e22b867dab5542040d04e8c6df785adbb1ac02b8cbfdc95a28161b471" } }, { @@ -9252,20 +11777,21 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "account", "type": "address" } ], - "name": "WhitelistAdminRemoved", + "name": "WhitelistedRemoved", "type": "event", "__signatureData": { - "method": "WhitelistAdminRemoved(address)", - "signature": "0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e165", + "method": "WhitelistedRemoved(address)", + "signature": "270d9b30cf5b0793bbfd54c9d5b94aeb49462b8148399000265144a8722da6b6", "index": [ true ], "indexed": 1, - "eventSignature": "f64b031d2f6ff287e1c6f2bc038f511c7c8446b749c0140d3d21ad2192073933" + "eventSignature": "3e172418151511c31245dc6615847969d48c97107b411294304772f374bcf0ad" } }, { @@ -9273,21 +11799,25 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "purchaser", "type": "address" }, { "indexed": true, + "internalType": "address", "name": "beneficiary", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "value", "type": "uint256" }, { "indexed": false, + "internalType": "uint256", "name": "amount", "type": "uint256" } @@ -9311,27 +11841,29 @@ "anonymous": false, "inputs": [ { - "indexed": false, - "name": "token", + "indexed": true, + "internalType": "address", + "name": "previousOwner", "type": "address" }, { - "indexed": false, - "name": "amount", - "type": "uint256" + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" } ], - "name": "TokensReleased", + "name": "OwnershipTransferred", "type": "event", "__signatureData": { - "method": "TokensReleased(address,uint256)", - "signature": "c7798891864187665ac6dd119286e44ec13f014527aeeb2b8eb3fd413df93179", + "method": "OwnershipTransferred(address,address)", + "signature": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "index": [ - false, - false + true, + true ], - "indexed": 0, - "eventSignature": "02db3711eb0df97fe489267794793ab70c330d05441540e8a6fc2995da3511ed" + "indexed": 2, + "eventSignature": "3caeb92b995b79aafedafa1caa25cbfb65b7311e29c30deb24dabcec8f6b9a82" } }, { @@ -9339,6 +11871,7 @@ "inputs": [ { "indexed": false, + "internalType": "address", "name": "token", "type": "address" } @@ -9359,27 +11892,29 @@ "anonymous": false, "inputs": [ { - "indexed": true, - "name": "previousOwner", + "indexed": false, + "internalType": "address", + "name": "token", "type": "address" }, { - "indexed": true, - "name": "newOwner", - "type": "address" + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" } ], - "name": "OwnershipTransferred", + "name": "TokensReleased", "type": "event", "__signatureData": { - "method": "OwnershipTransferred(address,address)", - "signature": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "method": "TokensReleased(address,uint256)", + "signature": "c7798891864187665ac6dd119286e44ec13f014527aeeb2b8eb3fd413df93179", "index": [ - true, - true + false, + false ], - "indexed": 2, - "eventSignature": "3caeb92b995b79aafedafa1caa25cbfb65b7311e29c30deb24dabcec8f6b9a82" + "indexed": 0, + "eventSignature": "02db3711eb0df97fe489267794793ab70c330d05441540e8a6fc2995da3511ed" } }, { @@ -9387,11 +11922,13 @@ "inputs": [ { "indexed": false, + "internalType": "uint256", "name": "prevClosingTime", "type": "uint256" }, { "indexed": false, + "internalType": "uint256", "name": "newClosingTime", "type": "uint256" } @@ -9414,6 +11951,7 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "account", "type": "address" } @@ -9435,6 +11973,7 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "account", "type": "address" } @@ -9456,6 +11995,7 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "account", "type": "address" } @@ -9477,6 +12017,7 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "account", "type": "address" } @@ -9506,42 +12047,18 @@ "eventSignature": "9270cc390c096600a1c17c44345a1ba689fafd99d97487b10cfccf86cf731836" } }, - { - "anonymous": false, - "inputs": [], - "name": "RefundsClosed", - "type": "event", - "__signatureData": { - "method": "RefundsClosed()", - "signature": "088672c3a6e342f7cd94a65ba63b79df24a8973927b4d05d803c44bbf787d12f", - "index": [], - "indexed": 0, - "eventSignature": "088672c3a6e342f7cd94a65ba63b79df24a8973927b4d05d803c44bbf787d12f" - } - }, - { - "anonymous": false, - "inputs": [], - "name": "RefundsEnabled", - "type": "event", - "__signatureData": { - "method": "RefundsEnabled()", - "signature": "599d8e5a83cffb867d051598c4d70e805d59802d8081c1c7d6dffc5b6aca2b89", - "index": [], - "indexed": 0, - "eventSignature": "599d8e5a83cffb867d051598c4d70e805d59802d8081c1c7d6dffc5b6aca2b89" - } - }, { "anonymous": false, "inputs": [ { "indexed": true, + "internalType": "address", "name": "payee", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "weiAmount", "type": "uint256" } @@ -9559,16 +12076,44 @@ "eventSignature": "f3cfbfbac77890a74b67531fe3b229cc981c138b288016538ab25faeb5297748" } }, + { + "anonymous": false, + "inputs": [], + "name": "RefundsClosed", + "type": "event", + "__signatureData": { + "method": "RefundsClosed()", + "signature": "088672c3a6e342f7cd94a65ba63b79df24a8973927b4d05d803c44bbf787d12f", + "index": [], + "indexed": 0, + "eventSignature": "088672c3a6e342f7cd94a65ba63b79df24a8973927b4d05d803c44bbf787d12f" + } + }, + { + "anonymous": false, + "inputs": [], + "name": "RefundsEnabled", + "type": "event", + "__signatureData": { + "method": "RefundsEnabled()", + "signature": "599d8e5a83cffb867d051598c4d70e805d59802d8081c1c7d6dffc5b6aca2b89", + "index": [], + "indexed": 0, + "eventSignature": "599d8e5a83cffb867d051598c4d70e805d59802d8081c1c7d6dffc5b6aca2b89" + } + }, { "anonymous": false, "inputs": [ { "indexed": true, + "internalType": "address", "name": "payee", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "weiAmount", "type": "uint256" } @@ -9591,11 +12136,13 @@ "inputs": [ { "indexed": false, + "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "shares", "type": "uint256" } @@ -9618,26 +12165,28 @@ "inputs": [ { "indexed": false, - "name": "to", + "internalType": "address", + "name": "from", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "amount", "type": "uint256" } ], - "name": "PaymentReleased", + "name": "PaymentReceived", "type": "event", "__signatureData": { - "method": "PaymentReleased(address,uint256)", - "signature": "df20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056", + "method": "PaymentReceived(address,uint256)", + "signature": "6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be770", "index": [ false, false ], "indexed": 0, - "eventSignature": "db424b1713867a4b9700d3e51d84caaec00f54e9c90d51ab3a0e1f440358cb3b" + "eventSignature": "0cc0c12213151cb2f76744da3e56fd7bd753d7e48599303461b350e04d6b5181" } }, { @@ -9645,26 +12194,28 @@ "inputs": [ { "indexed": false, - "name": "from", + "internalType": "address", + "name": "to", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "amount", "type": "uint256" } ], - "name": "PaymentReceived", + "name": "PaymentReleased", "type": "event", "__signatureData": { - "method": "PaymentReceived(address,uint256)", - "signature": "6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be770", + "method": "PaymentReleased(address,uint256)", + "signature": "df20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056", "index": [ false, false ], "indexed": 0, - "eventSignature": "0cc0c12213151cb2f76744da3e56fd7bd753d7e48599303461b350e04d6b5181" + "eventSignature": "db424b1713867a4b9700d3e51d84caaec00f54e9c90d51ab3a0e1f440358cb3b" } }, { @@ -9672,6 +12223,7 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "account", "type": "address" } @@ -9693,6 +12245,7 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "account", "type": "address" } @@ -9714,6 +12267,7 @@ "inputs": [ { "indexed": false, + "internalType": "address", "name": "account", "type": "address" } @@ -9735,6 +12289,7 @@ "inputs": [ { "indexed": false, + "internalType": "address", "name": "account", "type": "address" } @@ -9756,6 +12311,7 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "account", "type": "address" } @@ -9777,6 +12333,7 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "account", "type": "address" } @@ -9798,32 +12355,49 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "relay", "type": "address" }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, { "indexed": false, - "name": "stake", - "type": "uint256" + "internalType": "bytes4", + "name": "selector", + "type": "bytes4" }, { "indexed": false, - "name": "unstakeDelay", + "internalType": "uint256", + "name": "reason", "type": "uint256" } ], - "name": "Staked", + "name": "CanRelayFailed", "type": "event", "__signatureData": { - "method": "Staked(address,uint256,uint256)", - "signature": "1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee90", + "method": "CanRelayFailed(address,address,address,bytes4,uint256)", + "signature": "afb5afd6d1c2e8ffbfb480e674a169f493ece0b22658d4f4484e7334f0241e22", "index": [ + true, + true, true, false, false ], - "indexed": 1, - "eventSignature": "866a84c3f9aeb093e2ed8da68f59fec2c0971ee8b15c04c6eb15637f24547150" + "indexed": 3, + "eventSignature": "6246ddc1cc93e5818d257ca595114ddd2fd834dd28e80d8fadf4128b1b50b817" } }, { @@ -9831,50 +12405,35 @@ "inputs": [ { "indexed": true, - "name": "relay", + "internalType": "address", + "name": "recipient", "type": "address" }, { "indexed": true, - "name": "owner", + "internalType": "address", + "name": "from", "type": "address" }, { "indexed": false, - "name": "transactionFee", - "type": "uint256" - }, - { - "indexed": false, - "name": "stake", - "type": "uint256" - }, - { - "indexed": false, - "name": "unstakeDelay", + "internalType": "uint256", + "name": "amount", "type": "uint256" - }, - { - "indexed": false, - "name": "url", - "type": "string" } ], - "name": "RelayAdded", + "name": "Deposited", "type": "event", "__signatureData": { - "method": "RelayAdded(address,address,uint256,uint256,uint256,string)", - "signature": "85b3ae3aae9d3fcb31142fbd8c3b4722d57825b8edd6e1366e69204afa5a0dfa", + "method": "Deposited(address,address,uint256)", + "signature": "8752a472e571a816aea92eec8dae9baf628e840f4929fbcc2d155e6233ff68a7", "index": [ true, true, - false, - false, - false, false ], "indexed": 2, - "eventSignature": "a010a6bcf7b5930fdbd642b6d69171ef53492d7ec2ff6f3a0bfd938924a04848" + "eventSignature": "797e51340ec17e6b1c56dac14c59854d8571c6e20f423c47787c023ebaa79fd9" } }, { @@ -9882,53 +12441,35 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "relay", "type": "address" }, { "indexed": false, - "name": "unstakeTime", - "type": "uint256" - } - ], - "name": "RelayRemoved", - "type": "event", - "__signatureData": { - "method": "RelayRemoved(address,uint256)", - "signature": "5490afc1d818789c8b3d5d63bce3d2a3327d0bba4efb5a7751f783dc977d7d11", - "index": [ - true, - false - ], - "indexed": 1, - "eventSignature": "76d3e427a904ff3e9d6e769ffdc8d45d9a15ccc490df2b6ef20d714d469b478a" - } - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "relay", + "internalType": "address", + "name": "sender", "type": "address" }, { "indexed": false, - "name": "stake", + "internalType": "uint256", + "name": "amount", "type": "uint256" } ], - "name": "Unstaked", + "name": "Penalized", "type": "event", "__signatureData": { - "method": "Unstaked(address,uint256)", - "signature": "0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f75", + "method": "Penalized(address,address,uint256)", + "signature": "b0595266ccec357806b2691f348b128209f1060a0bda4f5c95f7090730351ff8", "index": [ true, + false, false ], "indexed": 1, - "eventSignature": "7b0523b2f18848528150d0f26cee4fca3ed681a33b92b5024efd04a83cf76c54" + "eventSignature": "15f5b18190245966e1819276c43b6197a82443a6934cafb8dc5e3dd2be1bba5b" } }, { @@ -9936,32 +12477,56 @@ "inputs": [ { "indexed": true, - "name": "recipient", + "internalType": "address", + "name": "relay", "type": "address" }, { "indexed": true, - "name": "from", + "internalType": "address", + "name": "owner", "type": "address" }, { "indexed": false, - "name": "amount", + "internalType": "uint256", + "name": "transactionFee", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "stake", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "unstakeDelay", "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "url", + "type": "string" } ], - "name": "Deposited", + "name": "RelayAdded", "type": "event", "__signatureData": { - "method": "Deposited(address,address,uint256)", - "signature": "8752a472e571a816aea92eec8dae9baf628e840f4929fbcc2d155e6233ff68a7", + "method": "RelayAdded(address,address,uint256,uint256,uint256,string)", + "signature": "85b3ae3aae9d3fcb31142fbd8c3b4722d57825b8edd6e1366e69204afa5a0dfa", "index": [ true, true, + false, + false, + false, false ], "indexed": 2, - "eventSignature": "797e51340ec17e6b1c56dac14c59854d8571c6e20f423c47787c023ebaa79fd9" + "eventSignature": "a010a6bcf7b5930fdbd642b6d69171ef53492d7ec2ff6f3a0bfd938924a04848" } }, { @@ -9969,32 +12534,28 @@ "inputs": [ { "indexed": true, - "name": "account", - "type": "address" - }, - { - "indexed": true, - "name": "dest", + "internalType": "address", + "name": "relay", "type": "address" }, { "indexed": false, - "name": "amount", + "internalType": "uint256", + "name": "unstakeTime", "type": "uint256" } ], - "name": "Withdrawn", + "name": "RelayRemoved", "type": "event", "__signatureData": { - "method": "Withdrawn(address,address,uint256)", - "signature": "d1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb", + "method": "RelayRemoved(address,uint256)", + "signature": "5490afc1d818789c8b3d5d63bce3d2a3327d0bba4efb5a7751f783dc977d7d11", "index": [ - true, true, false ], - "indexed": 2, - "eventSignature": "0e2d030650760d3871e054ffa9c47786dcf177cc303105369a8e9f342c8b029d" + "indexed": 1, + "eventSignature": "76d3e427a904ff3e9d6e769ffdc8d45d9a15ccc490df2b6ef20d714d469b478a" } }, { @@ -10002,44 +12563,35 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "relay", "type": "address" }, - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, { "indexed": false, - "name": "selector", - "type": "bytes4" + "internalType": "uint256", + "name": "stake", + "type": "uint256" }, { "indexed": false, - "name": "reason", + "internalType": "uint256", + "name": "unstakeDelay", "type": "uint256" } ], - "name": "CanRelayFailed", + "name": "Staked", "type": "event", - "__signatureData": { - "method": "CanRelayFailed(address,address,address,bytes4,uint256)", - "signature": "afb5afd6d1c2e8ffbfb480e674a169f493ece0b22658d4f4484e7334f0241e22", + "__signatureData": { + "method": "Staked(address,uint256,uint256)", + "signature": "1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee90", "index": [ - true, - true, true, false, false ], - "indexed": 3, - "eventSignature": "6246ddc1cc93e5818d257ca595114ddd2fd834dd28e80d8fadf4128b1b50b817" + "indexed": 1, + "eventSignature": "866a84c3f9aeb093e2ed8da68f59fec2c0971ee8b15c04c6eb15637f24547150" } }, { @@ -10047,31 +12599,37 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "relay", "type": "address" }, { "indexed": true, + "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, + "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, + "internalType": "bytes4", "name": "selector", "type": "bytes4" }, { "indexed": false, + "internalType": "enum IRelayHub.RelayCallStatus", "name": "status", "type": "uint8" }, { "indexed": false, + "internalType": "uint256", "name": "charge", "type": "uint256" } @@ -10098,32 +12656,28 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "relay", "type": "address" }, { "indexed": false, - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "name": "amount", + "internalType": "uint256", + "name": "stake", "type": "uint256" } ], - "name": "Penalized", + "name": "Unstaked", "type": "event", "__signatureData": { - "method": "Penalized(address,address,uint256)", - "signature": "b0595266ccec357806b2691f348b128209f1060a0bda4f5c95f7090730351ff8", + "method": "Unstaked(address,uint256)", + "signature": "0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f75", "index": [ true, - false, false ], "indexed": 1, - "eventSignature": "15f5b18190245966e1819276c43b6197a82443a6934cafb8dc5e3dd2be1bba5b" + "eventSignature": "7b0523b2f18848528150d0f26cee4fca3ed681a33b92b5024efd04a83cf76c54" } }, { @@ -10131,50 +12685,35 @@ "inputs": [ { "indexed": true, - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "name": "from", + "internalType": "address", + "name": "account", "type": "address" }, { "indexed": true, - "name": "to", + "internalType": "address", + "name": "dest", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "amount", "type": "uint256" - }, - { - "indexed": false, - "name": "data", - "type": "bytes" - }, - { - "indexed": false, - "name": "operatorData", - "type": "bytes" } ], - "name": "Sent", + "name": "Withdrawn", "type": "event", "__signatureData": { - "method": "Sent(address,address,address,uint256,bytes,bytes)", - "signature": "06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987", + "method": "Withdrawn(address,address,uint256)", + "signature": "d1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb", "index": [ true, true, - true, - false, - false, false ], - "indexed": 3, - "eventSignature": "79a60acac19908bc2b59dffabec387f74ee66e75ba7dc244aa9b4bd344c7238d" + "indexed": 2, + "eventSignature": "0e2d030650760d3871e054ffa9c47786dcf177cc303105369a8e9f342c8b029d" } }, { @@ -10182,44 +12721,28 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, - "name": "to", + "internalType": "address", + "name": "tokenHolder", "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "data", - "type": "bytes" - }, - { - "indexed": false, - "name": "operatorData", - "type": "bytes" } ], - "name": "Minted", + "name": "AuthorizedOperator", "type": "event", "__signatureData": { - "method": "Minted(address,address,uint256,bytes,bytes)", - "signature": "2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d", + "method": "AuthorizedOperator(address,address)", + "signature": "f4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f9", "index": [ true, - true, - false, - false, - false + true ], "indexed": 2, - "eventSignature": "1de3dae660a62c3814b302291e4855fce531cc3976d3a1aa413df1f10af99545" + "eventSignature": "675fb7391622d0d5bc83dff94c6200ee5e8fbc9070d5be471897305f97d69594" } }, { @@ -10227,26 +12750,31 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, + "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, + "internalType": "bytes", "name": "data", "type": "bytes" }, { "indexed": false, + "internalType": "bytes", "name": "operatorData", "type": "bytes" } @@ -10272,26 +12800,49 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, - "name": "tokenHolder", + "internalType": "address", + "name": "to", "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "operatorData", + "type": "bytes" } ], - "name": "AuthorizedOperator", + "name": "Minted", "type": "event", "__signatureData": { - "method": "AuthorizedOperator(address,address)", - "signature": "f4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f9", + "method": "Minted(address,address,uint256,bytes,bytes)", + "signature": "2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d", "index": [ true, - true + true, + false, + false, + false ], "indexed": 2, - "eventSignature": "675fb7391622d0d5bc83dff94c6200ee5e8fbc9070d5be471897305f97d69594" + "eventSignature": "1de3dae660a62c3814b302291e4855fce531cc3976d3a1aa413df1f10af99545" } }, { @@ -10299,11 +12850,13 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, + "internalType": "address", "name": "tokenHolder", "type": "address" } @@ -10326,32 +12879,56 @@ "inputs": [ { "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, + "internalType": "address", "name": "to", "type": "address" }, { - "indexed": true, - "name": "tokenId", + "indexed": false, + "internalType": "uint256", + "name": "amount", "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "operatorData", + "type": "bytes" } ], - "name": "Transfer", + "name": "Sent", "type": "event", "__signatureData": { - "method": "Transfer(address,address,uint256)", - "signature": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "method": "Sent(address,address,address,uint256,bytes,bytes)", + "signature": "06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987", "index": [ true, true, - true + true, + false, + false, + false ], "indexed": 3, - "eventSignature": "effeccbe276a467191ec04459969a28b1271df483a196057d8091645c1501cfd" + "eventSignature": "79a60acac19908bc2b59dffabec387f74ee66e75ba7dc244aa9b4bd344c7238d" } }, { @@ -10359,16 +12936,19 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, + "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, + "internalType": "uint256", "name": "tokenId", "type": "uint256" } @@ -10392,16 +12972,19 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, + "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, + "internalType": "bool", "name": "approved", "type": "bool" } @@ -10425,16 +13008,55 @@ "inputs": [ { "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event", + "__signatureData": { + "method": "Transfer(address,address,uint256)", + "signature": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "index": [ + true, + true, + true + ], + "indexed": 3, + "eventSignature": "effeccbe276a467191ec04459969a28b1271df483a196057d8091645c1501cfd" + } + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, + "internalType": "bytes32", "name": "interfaceHash", "type": "bytes32" }, { "indexed": true, + "internalType": "address", "name": "implementer", "type": "address" } @@ -10458,11 +13080,13 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, + "internalType": "address", "name": "newManager", "type": "address" } @@ -10498,11 +13122,13 @@ "inputs": [ { "indexed": true, + "internalType": "address", "name": "oldRelayHub", "type": "address" }, { "indexed": true, + "internalType": "address", "name": "newRelayHub", "type": "address" } @@ -10525,37 +13151,19 @@ "inputs": [ { "indexed": false, - "name": "sender", - "type": "address" - } - ], - "name": "Sender", - "type": "event", - "__signatureData": { - "method": "Sender(address)", - "signature": "d6558c3ed910d959271054471fd1c326679d9fece99c5091b00ed89627cf2bfc", - "index": [ - false - ], - "indexed": 0, - "eventSignature": "175a6649fb5c0c27c88482127893f59c0b7faee84ad3d90ec9f0d83811d2c3e8" - } - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, + "internalType": "bytes", "name": "data", "type": "bytes" }, { "indexed": false, + "internalType": "uint256", "name": "integerValue", "type": "uint256" }, { "indexed": false, + "internalType": "string", "name": "stringValue", "type": "string" } @@ -10579,6 +13187,29 @@ "inputs": [ { "indexed": false, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "Sender", + "type": "event", + "__signatureData": { + "method": "Sender(address)", + "signature": "d6558c3ed910d959271054471fd1c326679d9fece99c5091b00ed89627cf2bfc", + "index": [ + false + ], + "indexed": 0, + "eventSignature": "175a6649fb5c0c27c88482127893f59c0b7faee84ad3d90ec9f0d83811d2c3e8" + } + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", "name": "senderBalance", "type": "uint256" } @@ -10600,55 +13231,86 @@ "inputs": [ { "indexed": false, + "internalType": "bool", + "name": "result", + "type": "bool" + } + ], + "name": "TransactionResult", + "type": "event", + "__signatureData": { + "method": "TransactionResult(bool)", + "signature": "5f2d66b608a7b4bfa43b7e9ba385022741152c97499b8a8abcd5c27258417b5a", + "index": [ + false + ], + "indexed": 0, + "eventSignature": "c50ffabeccb2a0503b5cfc61ec812616a1749e58efbc7c86206787021b0253a8" + } + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, + "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, + "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, + "internalType": "bytes", "name": "data", "type": "bytes" }, { "indexed": false, + "internalType": "bytes", "name": "operatorData", "type": "bytes" }, { "indexed": false, + "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "fromBalance", "type": "uint256" }, { "indexed": false, + "internalType": "uint256", "name": "toBalance", "type": "uint256" } ], - "name": "TokensToSendCalled", + "name": "TokensReceivedCalled", "type": "event", "__signatureData": { - "method": "TokensToSendCalled(address,address,address,uint256,bytes,bytes,address,uint256,uint256)", - "signature": "aa3e88aca472e90221daf7d3d601abafb62b120319089d7a2c2f63588da85529", + "method": "TokensReceivedCalled(address,address,address,uint256,bytes,bytes,address,uint256,uint256)", + "signature": "47e915878c47f3ec4d7ff646a2becb229f64fd2abe4d2b5e2bb4275b0cf50d4e", "index": [ false, false, @@ -10661,7 +13323,7 @@ false ], "indexed": 0, - "eventSignature": "47f470940c78bab452bbad82488a53936f27c3ae1c870c85062675ebfbdd1e70" + "eventSignature": "68c6768a2b60c20a4720c4df07bfa1e2ae8048b06ec535671e097366a2cf4b71" } }, { @@ -10669,55 +13331,64 @@ "inputs": [ { "indexed": false, + "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, + "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, + "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, + "internalType": "bytes", "name": "data", "type": "bytes" }, { "indexed": false, + "internalType": "bytes", "name": "operatorData", "type": "bytes" }, { "indexed": false, + "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "fromBalance", "type": "uint256" }, { "indexed": false, + "internalType": "uint256", "name": "toBalance", "type": "uint256" } ], - "name": "TokensReceivedCalled", + "name": "TokensToSendCalled", "type": "event", "__signatureData": { - "method": "TokensReceivedCalled(address,address,address,uint256,bytes,bytes,address,uint256,uint256)", - "signature": "47e915878c47f3ec4d7ff646a2becb229f64fd2abe4d2b5e2bb4275b0cf50d4e", + "method": "TokensToSendCalled(address,address,address,uint256,bytes,bytes,address,uint256,uint256)", + "signature": "aa3e88aca472e90221daf7d3d601abafb62b120319089d7a2c2f63588da85529", "index": [ false, false, @@ -10730,7 +13401,7 @@ false ], "indexed": 0, - "eventSignature": "68c6768a2b60c20a4720c4df07bfa1e2ae8048b06ec535671e097366a2cf4b71" + "eventSignature": "47f470940c78bab452bbad82488a53936f27c3ae1c870c85062675ebfbdd1e70" } }, { @@ -10738,26 +13409,31 @@ "inputs": [ { "indexed": false, + "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, + "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, + "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, + "internalType": "bytes", "name": "data", "type": "bytes" }, { "indexed": false, + "internalType": "uint256", "name": "gas", "type": "uint256" } @@ -10783,6 +13459,7 @@ "inputs": [ { "indexed": false, + "internalType": "uint256", "name": "id", "type": "uint256" } From 6849f89f7cbe933c3c7b7c0333db6f848dc32433 Mon Sep 17 00:00:00 2001 From: Dario Date: Mon, 31 Jul 2023 17:29:55 -0300 Subject: [PATCH 18/33] fix: fixed findMatchingActivationHeight function --- dist/lib/nativeContracts/bridgeAbi.js | 10 +++++++--- src/lib/nativeContracts/bridgeAbi.js | 10 +++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/dist/lib/nativeContracts/bridgeAbi.js b/dist/lib/nativeContracts/bridgeAbi.js index 382ccec..20b5a9d 100644 --- a/dist/lib/nativeContracts/bridgeAbi.js +++ b/dist/lib/nativeContracts/bridgeAbi.js @@ -27,18 +27,22 @@ function getBridgeAbi({ txBlockNumber, bitcoinNetwork }) { function findMatchingActivationHeight(txHeight, heights) { // Finds the highest release activation height that is lower than/equal to the tx's block number, in // order to find the ABI that corresponds to the bridge version used at the moment of the transaction. + let matchingActivationHeight; - let matchingActivationHeight = -1; for (let i = 0; i < heights.length; i++) { const currentHeight = heights[i]; + const nextHeight = heights[i + 1]; - if (txHeight >= currentHeight && matchingActivationHeight < currentHeight) { - matchingActivationHeight = currentHeight; + if (txHeight >= currentHeight) { + if (!nextHeight || txHeight < nextHeight) { + matchingActivationHeight = currentHeight; + } } } return matchingActivationHeight; } + if (isNaN(txBlockNumber) || txBlockNumber < 0) { throw new Error('Invalid tx block number'); } else if (!['testnet', 'mainnet'].includes(bitcoinNetwork)) { diff --git a/src/lib/nativeContracts/bridgeAbi.js b/src/lib/nativeContracts/bridgeAbi.js index 762b236..602fefa 100644 --- a/src/lib/nativeContracts/bridgeAbi.js +++ b/src/lib/nativeContracts/bridgeAbi.js @@ -27,18 +27,22 @@ export function getBridgeAbi ({ txBlockNumber, bitcoinNetwork }) { function findMatchingActivationHeight (txHeight, heights) { // Finds the highest release activation height that is lower than/equal to the tx's block number, in // order to find the ABI that corresponds to the bridge version used at the moment of the transaction. + let matchingActivationHeight - let matchingActivationHeight = -1 for (let i = 0; i < heights.length; i++) { const currentHeight = heights[i] + const nextHeight = heights[i + 1] - if (txHeight >= currentHeight && matchingActivationHeight < currentHeight) { - matchingActivationHeight = currentHeight + if (txHeight >= currentHeight) { + if (!nextHeight || txHeight < nextHeight) { + matchingActivationHeight = currentHeight + } } } return matchingActivationHeight } + if (isNaN(txBlockNumber) || txBlockNumber < 0) { throw new Error('Invalid tx block number') } else if (!['testnet', 'mainnet'].includes(bitcoinNetwork)) { From 5b9a7d4c60836e1bb06eb6b5353383f346b69497 Mon Sep 17 00:00:00 2001 From: Dario Date: Mon, 31 Jul 2023 17:30:13 -0300 Subject: [PATCH 19/33] feat: added tests for getBridgeAbi function --- test/getBridgeAbi.js | 82 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 test/getBridgeAbi.js diff --git a/test/getBridgeAbi.js b/test/getBridgeAbi.js new file mode 100644 index 0000000..88ce7e8 --- /dev/null +++ b/test/getBridgeAbi.js @@ -0,0 +1,82 @@ +import { expect } from 'chai' +import orchid from '../src/lib/nativeContracts/bridge-orchid.json' +import wasabi from '../src/lib/nativeContracts/bridge-wasabi.json' +import iris from '../src/lib/nativeContracts/bridge-iris.json' +import fingerroot from '../src/lib/nativeContracts/bridge-fingerroot.json' +import hop from '../src/lib/nativeContracts/bridge-hop.json' +import { getBridgeAbi } from '../src/lib/nativeContracts/bridgeAbi' + +/* + mainnet: { + 0: orchid, + 1591000: wasabi, + 2392700: papyrus, + 3614800: iris, + 4598500: hop, + 5468000: fingerroot + }, + testnet: { + 0: wasabi, + 863000: papyrus, + 2060500: iris, + 3103000: hop, + 4015800: fingerroot + } +*/ + +describe('getBridgeAbi(txBlockNumber, bitcoinNetwork) should return the correct ABI for the bridge', () => { + it('Should return orchid for height 0 in mainnet', () => { + const abi = getBridgeAbi({ txBlockNumber: 0, bitcoinNetwork: 'mainnet' }) + expect(abi).to.be.deep.equal(orchid) + }) + + it('Should return orchid for height 1 in mainnet', () => { + const abi = getBridgeAbi({ txBlockNumber: 1, bitcoinNetwork: 'mainnet' }) + expect(abi).to.be.deep.equal(orchid) + }) + + it('Should return iris for height 3614801 in mainnet', () => { + const abi = getBridgeAbi({ txBlockNumber: 3614801, bitcoinNetwork: 'mainnet' }) + expect(abi).to.be.deep.equal(iris) + }) + + it('Should return fingerroot for height 5468005 in mainnet', () => { + const abi = getBridgeAbi({ txBlockNumber: 5468005, bitcoinNetwork: 'mainnet' }) + expect(abi).to.be.deep.equal(fingerroot) + }) + + it('Should return wasabi for height 0 in testnet', () => { + const abi = getBridgeAbi({ txBlockNumber: 0, bitcoinNetwork: 'testnet' }) + expect(abi).to.be.deep.equal(wasabi) + }) + + it('Should return wasabi for height 1 in testnet', () => { + const abi = getBridgeAbi({ txBlockNumber: 1, bitcoinNetwork: 'testnet' }) + expect(abi).to.be.deep.equal(wasabi) + }) + + it('Should return hop for height 3103001 in testnet', () => { + const abi = getBridgeAbi({ txBlockNumber: 3103001, bitcoinNetwork: 'testnet' }) + expect(abi).to.be.deep.equal(hop) + }) + + it('Should return fingeroot for height 4015805 in testnet', () => { + const abi = getBridgeAbi({ txBlockNumber: 4015805, bitcoinNetwork: 'testnet' }) + expect(abi).to.be.deep.equal(fingerroot) + }) + + it('Should throw an error with a non numerical block number', () => { + const getAbi = () => getBridgeAbi({ txBlockNumber: 'notANumber', bitcoinNetwork: 'testnet' }) + expect(getAbi).to.throw() + }) + + it('Should throw an error with a negative block number', () => { + const getAbi = () => getBridgeAbi({ txBlockNumber: -1, bitcoinNetwork: 'testnet' }) + expect(getAbi).to.throw() + }) + + it('Should throw an error with a non existent bitcoin network', () => { + const getAbi = () => getBridgeAbi({ txBlockNumber: 3003, bitcoinNetwork: 'wondernet' }) + expect(getAbi).to.throw() + }) +}) From ef4d8016f2afedf8cbd65fc157130ab9d8070262 Mon Sep 17 00:00:00 2001 From: Dario Date: Thu, 3 Aug 2023 11:45:55 -0300 Subject: [PATCH 20/33] fix: update test file name and include it in package.json test script --- package.json | 2 +- test/{getBridgeAbi.js => bridgeAbi.spec.js} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename test/{getBridgeAbi.js => bridgeAbi.spec.js} (100%) diff --git a/package.json b/package.json index a596ffe..385329a 100755 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "lint": "npx eslint src/**/* --quiet", "test": "npx mocha", - "test:local": "npx mocha test/compiler.spec.js test/events.spec.js test/nativeContracts.spec.js", + "test:local": "npx mocha test/compiler.spec.js test/events.spec.js test/nativeContracts.spec.js test/bridgeAbi.spec.js", "build": "npx babel src -d dist --copy-files", "abi": "npx babel-node --presets @babel/preset-env src/lib/compileJsonAbis.js" }, diff --git a/test/getBridgeAbi.js b/test/bridgeAbi.spec.js similarity index 100% rename from test/getBridgeAbi.js rename to test/bridgeAbi.spec.js From 8cf9d752099037483be9d9b786f84aef2540c930 Mon Sep 17 00:00:00 2001 From: Dario Date: Thu, 17 Aug 2023 15:07:11 -0300 Subject: [PATCH 21/33] fix: refactor getBridgeAbi logic --- dist/lib/nativeContracts/bridgeAbi.js | 74 ++++++++++++--------------- src/lib/nativeContracts/bridgeAbi.js | 68 +++++++++++------------- 2 files changed, 61 insertions(+), 81 deletions(-) diff --git a/dist/lib/nativeContracts/bridgeAbi.js b/dist/lib/nativeContracts/bridgeAbi.js index 20b5a9d..a82de55 100644 --- a/dist/lib/nativeContracts/bridgeAbi.js +++ b/dist/lib/nativeContracts/bridgeAbi.js @@ -1,4 +1,4 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.getBridgeAbi = getBridgeAbi;var _bridgeOrchid = _interopRequireDefault(require("./bridge-orchid.json")); +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.getBridgeAbi = getBridgeAbi;exports.RELEASES = void 0;var _bridgeOrchid = _interopRequireDefault(require("./bridge-orchid.json")); var _bridgeWasabi = _interopRequireDefault(require("./bridge-wasabi.json")); var _bridgePapyrus = _interopRequireDefault(require("./bridge-papyrus.json")); var _bridgeIris = _interopRequireDefault(require("./bridge-iris.json")); @@ -6,52 +6,42 @@ var _bridgeFingerroot = _interopRequireDefault(require("./bridge-fingerroot.json var _bridgeHop = _interopRequireDefault(require("./bridge-hop.json"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} const RELEASES = { - mainnet: { - 0: _bridgeOrchid.default, - 1591000: _bridgeWasabi.default, - 2392700: _bridgePapyrus.default, - 3614800: _bridgeIris.default, - 4598500: _bridgeHop.default, - 5468000: _bridgeFingerroot.default }, - - testnet: { - 0: _bridgeWasabi.default, - 863000: _bridgePapyrus.default, - 2060500: _bridgeIris.default, - 3103000: _bridgeHop.default, - 4015800: _bridgeFingerroot.default } }; - - - -function getBridgeAbi({ txBlockNumber, bitcoinNetwork }) { - function findMatchingActivationHeight(txHeight, heights) { - // Finds the highest release activation height that is lower than/equal to the tx's block number, in - // order to find the ABI that corresponds to the bridge version used at the moment of the transaction. - let matchingActivationHeight; - - for (let i = 0; i < heights.length; i++) { - const currentHeight = heights[i]; - const nextHeight = heights[i + 1]; - - if (txHeight >= currentHeight) { - if (!nextHeight || txHeight < nextHeight) { - matchingActivationHeight = currentHeight; - } + mainnet: [ + { height: 0, abi: _bridgeOrchid.default }, + { height: 1591000, abi: _bridgeWasabi.default }, + { height: 2392700, abi: _bridgePapyrus.default }, + { height: 3614800, abi: _bridgeIris.default }, + { height: 4598500, abi: _bridgeHop.default }, + { height: 5468000, abi: _bridgeFingerroot.default }], + + testnet: [ + { height: 0, abi: _bridgeWasabi.default }, + { height: 863000, abi: _bridgePapyrus.default }, + { height: 2060500, abi: _bridgeIris.default }, + { height: 3103000, abi: _bridgeHop.default }, + { height: 4015800, abi: _bridgeFingerroot.default }] };exports.RELEASES = RELEASES; + + + +function findmatchingAbi(txHeight, abisWithHeight) { + const lastIndex = abisWithHeight.length - 1; + + if (txHeight >= abisWithHeight[lastIndex].height || txHeight === undefined) { + return abisWithHeight[lastIndex].abi; + } else { + for (let i = 1; i <= lastIndex; i++) { + const previous = abisWithHeight[i - 1]; + if (txHeight >= previous.height && txHeight < abisWithHeight[i].height) { + return previous.abi; } } - - return matchingActivationHeight; } +} - if (isNaN(txBlockNumber) || txBlockNumber < 0) { - throw new Error('Invalid tx block number'); - } else if (!['testnet', 'mainnet'].includes(bitcoinNetwork)) { +function getBridgeAbi({ txBlockNumber, bitcoinNetwork }) { + if (!['testnet', 'mainnet'].includes(bitcoinNetwork)) { throw new Error('Invalid bitcoin network'); } - const activationHeights = Object.keys(RELEASES[bitcoinNetwork]); - - const matchingActivationHeight = findMatchingActivationHeight(txBlockNumber, activationHeights); - - return RELEASES[bitcoinNetwork][matchingActivationHeight]; + return findmatchingAbi(txBlockNumber, RELEASES[bitcoinNetwork]); } \ No newline at end of file diff --git a/src/lib/nativeContracts/bridgeAbi.js b/src/lib/nativeContracts/bridgeAbi.js index 602fefa..8efc9a9 100644 --- a/src/lib/nativeContracts/bridgeAbi.js +++ b/src/lib/nativeContracts/bridgeAbi.js @@ -5,53 +5,43 @@ import iris from './bridge-iris.json' import fingerroot from './bridge-fingerroot.json' import hop from './bridge-hop.json' -const RELEASES = { - mainnet: { - 0: orchid, - 1591000: wasabi, - 2392700: papyrus, - 3614800: iris, - 4598500: hop, - 5468000: fingerroot - }, - testnet: { - 0: wasabi, - 863000: papyrus, - 2060500: iris, - 3103000: hop, - 4015800: fingerroot - } +export const RELEASES = { + mainnet: [ + { height: 0, abi: orchid }, + { height: 1591000, abi: wasabi }, + { height: 2392700, abi: papyrus }, + { height: 3614800, abi: iris }, + { height: 4598500, abi: hop }, + { height: 5468000, abi: fingerroot } + ], + testnet: [ + { height: 0, abi: wasabi }, + { height: 863000, abi: papyrus }, + { height: 2060500, abi: iris }, + { height: 3103000, abi: hop }, + { height: 4015800, abi: fingerroot } + ] } -export function getBridgeAbi ({ txBlockNumber, bitcoinNetwork }) { - function findMatchingActivationHeight (txHeight, heights) { - // Finds the highest release activation height that is lower than/equal to the tx's block number, in - // order to find the ABI that corresponds to the bridge version used at the moment of the transaction. - let matchingActivationHeight - - for (let i = 0; i < heights.length; i++) { - const currentHeight = heights[i] - const nextHeight = heights[i + 1] +function findmatchingAbi (txHeight, abisWithHeight) { + const lastIndex = abisWithHeight.length - 1 - if (txHeight >= currentHeight) { - if (!nextHeight || txHeight < nextHeight) { - matchingActivationHeight = currentHeight - } + if (txHeight >= abisWithHeight[lastIndex].height || txHeight === undefined) { + return abisWithHeight[lastIndex].abi + } else { + for (let i = 1; i <= lastIndex; i++) { + const previous = abisWithHeight[i - 1] + if (txHeight >= previous.height && txHeight < abisWithHeight[i].height) { + return previous.abi } } - - return matchingActivationHeight } +} - if (isNaN(txBlockNumber) || txBlockNumber < 0) { - throw new Error('Invalid tx block number') - } else if (!['testnet', 'mainnet'].includes(bitcoinNetwork)) { +export function getBridgeAbi ({ txBlockNumber, bitcoinNetwork }) { + if (!['testnet', 'mainnet'].includes(bitcoinNetwork)) { throw new Error('Invalid bitcoin network') } - const activationHeights = Object.keys(RELEASES[bitcoinNetwork]) - - const matchingActivationHeight = findMatchingActivationHeight(txBlockNumber, activationHeights) - - return RELEASES[bitcoinNetwork][matchingActivationHeight] + return findmatchingAbi(txBlockNumber, RELEASES[bitcoinNetwork]) } From acc91540393bb4128f5238e832ba104af05604ca Mon Sep 17 00:00:00 2001 From: Dario Date: Thu, 17 Aug 2023 15:08:21 -0300 Subject: [PATCH 22/33] fix: test abis order and parameterize tests --- test/bridgeAbi.spec.js | 85 +++++++++++++++++++++--------------------- 1 file changed, 42 insertions(+), 43 deletions(-) diff --git a/test/bridgeAbi.spec.js b/test/bridgeAbi.spec.js index 88ce7e8..f65b2f9 100644 --- a/test/bridgeAbi.spec.js +++ b/test/bridgeAbi.spec.js @@ -4,7 +4,7 @@ import wasabi from '../src/lib/nativeContracts/bridge-wasabi.json' import iris from '../src/lib/nativeContracts/bridge-iris.json' import fingerroot from '../src/lib/nativeContracts/bridge-fingerroot.json' import hop from '../src/lib/nativeContracts/bridge-hop.json' -import { getBridgeAbi } from '../src/lib/nativeContracts/bridgeAbi' +import { getBridgeAbi, RELEASES } from '../src/lib/nativeContracts/bridgeAbi' /* mainnet: { @@ -24,56 +24,55 @@ import { getBridgeAbi } from '../src/lib/nativeContracts/bridgeAbi' } */ -describe('getBridgeAbi(txBlockNumber, bitcoinNetwork) should return the correct ABI for the bridge', () => { - it('Should return orchid for height 0 in mainnet', () => { - const abi = getBridgeAbi({ txBlockNumber: 0, bitcoinNetwork: 'mainnet' }) - expect(abi).to.be.deep.equal(orchid) - }) +describe('All abis must be in ascendant order', () => { + const mainnetAbis = RELEASES['mainnet'] + const testnetAbis = RELEASES['testnet'] - it('Should return orchid for height 1 in mainnet', () => { - const abi = getBridgeAbi({ txBlockNumber: 1, bitcoinNetwork: 'mainnet' }) - expect(abi).to.be.deep.equal(orchid) - }) - - it('Should return iris for height 3614801 in mainnet', () => { - const abi = getBridgeAbi({ txBlockNumber: 3614801, bitcoinNetwork: 'mainnet' }) - expect(abi).to.be.deep.equal(iris) - }) + for (let i = 1; i < mainnetAbis.length; i++) { + it('Should current height be higher than the previous one', () => { + expect(mainnetAbis[i].height).to.be.greaterThan(mainnetAbis[i - 1].height) + }) + } - it('Should return fingerroot for height 5468005 in mainnet', () => { - const abi = getBridgeAbi({ txBlockNumber: 5468005, bitcoinNetwork: 'mainnet' }) - expect(abi).to.be.deep.equal(fingerroot) - }) + for (let i = 1; i < testnetAbis.length; i++) { + it('Should current height be higher than the previous one', () => { + expect(testnetAbis[i].height).to.be.greaterThan(testnetAbis[i - 1].height) + }) + } +}) - it('Should return wasabi for height 0 in testnet', () => { - const abi = getBridgeAbi({ txBlockNumber: 0, bitcoinNetwork: 'testnet' }) - expect(abi).to.be.deep.equal(wasabi) - }) +function shouldBeTheSameAbi (abi1, abi2) { + expect(abi1).to.be.deep.equal(abi2) +} - it('Should return wasabi for height 1 in testnet', () => { - const abi = getBridgeAbi({ txBlockNumber: 1, bitcoinNetwork: 'testnet' }) - expect(abi).to.be.deep.equal(wasabi) - }) +describe('getBridgeAbi(txBlockNumber, bitcoinNetwork) should return the correct ABI for the bridge', () => { + const mainnetTestExpectations = [ + { height: 0, abi: orchid, name: 'orchid' }, + { height: 1, abi: orchid, name: 'orchid' }, + { height: 3614801, abi: iris, name: 'iris' }, + { height: 5468005, abi: fingerroot, name: 'fingerroot' } + ] + const testnetTestExpectatins = [ + { height: 0, abi: wasabi, name: 'wasabi' }, + { height: 1, abi: wasabi, name: 'wasabi' }, + { height: 3103001, abi: hop, name: 'hop' } + ] - it('Should return hop for height 3103001 in testnet', () => { - const abi = getBridgeAbi({ txBlockNumber: 3103001, bitcoinNetwork: 'testnet' }) - expect(abi).to.be.deep.equal(hop) - }) + for (const { height, abi, name } of mainnetTestExpectations) { + const params = { txBlockNumber: height, bitcoinNetwork: 'mainnet' } - it('Should return fingeroot for height 4015805 in testnet', () => { - const abi = getBridgeAbi({ txBlockNumber: 4015805, bitcoinNetwork: 'testnet' }) - expect(abi).to.be.deep.equal(fingerroot) - }) + it(`Should return ${name} abi for height ${height} in ${params.bitcoinNetwork}`, () => { + shouldBeTheSameAbi(getBridgeAbi(params), abi) + }) + } - it('Should throw an error with a non numerical block number', () => { - const getAbi = () => getBridgeAbi({ txBlockNumber: 'notANumber', bitcoinNetwork: 'testnet' }) - expect(getAbi).to.throw() - }) + for (const { height, abi, name } of testnetTestExpectatins) { + const params = { txBlockNumber: height, bitcoinNetwork: 'testnet' } - it('Should throw an error with a negative block number', () => { - const getAbi = () => getBridgeAbi({ txBlockNumber: -1, bitcoinNetwork: 'testnet' }) - expect(getAbi).to.throw() - }) + it(`Should return ${name} abi for height ${height} in ${params.bitcoinNetwork}`, () => { + shouldBeTheSameAbi(getBridgeAbi(params), abi) + }) + } it('Should throw an error with a non existent bitcoin network', () => { const getAbi = () => getBridgeAbi({ txBlockNumber: 3003, bitcoinNetwork: 'wondernet' }) From 3c81df7a774bf435053856a72b2e7e8963d40056 Mon Sep 17 00:00:00 2001 From: Dario Date: Thu, 17 Aug 2023 15:19:30 -0300 Subject: [PATCH 23/33] fix: remove unnecessary function --- test/bridgeAbi.spec.js | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/test/bridgeAbi.spec.js b/test/bridgeAbi.spec.js index f65b2f9..5c5a6e6 100644 --- a/test/bridgeAbi.spec.js +++ b/test/bridgeAbi.spec.js @@ -41,10 +41,6 @@ describe('All abis must be in ascendant order', () => { } }) -function shouldBeTheSameAbi (abi1, abi2) { - expect(abi1).to.be.deep.equal(abi2) -} - describe('getBridgeAbi(txBlockNumber, bitcoinNetwork) should return the correct ABI for the bridge', () => { const mainnetTestExpectations = [ { height: 0, abi: orchid, name: 'orchid' }, @@ -62,7 +58,7 @@ describe('getBridgeAbi(txBlockNumber, bitcoinNetwork) should return the correct const params = { txBlockNumber: height, bitcoinNetwork: 'mainnet' } it(`Should return ${name} abi for height ${height} in ${params.bitcoinNetwork}`, () => { - shouldBeTheSameAbi(getBridgeAbi(params), abi) + expect(getBridgeAbi(params)).to.be.deep.equal(abi) }) } @@ -70,7 +66,7 @@ describe('getBridgeAbi(txBlockNumber, bitcoinNetwork) should return the correct const params = { txBlockNumber: height, bitcoinNetwork: 'testnet' } it(`Should return ${name} abi for height ${height} in ${params.bitcoinNetwork}`, () => { - shouldBeTheSameAbi(getBridgeAbi(params), abi) + expect(getBridgeAbi(params)).to.be.deep.equal(abi) }) } From feff32ea79ab28e3efbddcc5eb88e2ab8c97b99e Mon Sep 17 00:00:00 2001 From: Dario Date: Thu, 17 Aug 2023 15:27:27 -0300 Subject: [PATCH 24/33] fix: remove "else" statement in getAbiBridge function --- dist/lib/nativeContracts/bridgeAbi.js | 12 ++++++------ src/lib/nativeContracts/bridgeAbi.js | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/dist/lib/nativeContracts/bridgeAbi.js b/dist/lib/nativeContracts/bridgeAbi.js index a82de55..dea334b 100644 --- a/dist/lib/nativeContracts/bridgeAbi.js +++ b/dist/lib/nativeContracts/bridgeAbi.js @@ -28,12 +28,12 @@ function findmatchingAbi(txHeight, abisWithHeight) { if (txHeight >= abisWithHeight[lastIndex].height || txHeight === undefined) { return abisWithHeight[lastIndex].abi; - } else { - for (let i = 1; i <= lastIndex; i++) { - const previous = abisWithHeight[i - 1]; - if (txHeight >= previous.height && txHeight < abisWithHeight[i].height) { - return previous.abi; - } + } + + for (let i = 1; i <= lastIndex; i++) { + const previous = abisWithHeight[i - 1]; + if (txHeight >= previous.height && txHeight < abisWithHeight[i].height) { + return previous.abi; } } } diff --git a/src/lib/nativeContracts/bridgeAbi.js b/src/lib/nativeContracts/bridgeAbi.js index 8efc9a9..a70029a 100644 --- a/src/lib/nativeContracts/bridgeAbi.js +++ b/src/lib/nativeContracts/bridgeAbi.js @@ -28,12 +28,12 @@ function findmatchingAbi (txHeight, abisWithHeight) { if (txHeight >= abisWithHeight[lastIndex].height || txHeight === undefined) { return abisWithHeight[lastIndex].abi - } else { - for (let i = 1; i <= lastIndex; i++) { - const previous = abisWithHeight[i - 1] - if (txHeight >= previous.height && txHeight < abisWithHeight[i].height) { - return previous.abi - } + } + + for (let i = 1; i <= lastIndex; i++) { + const previous = abisWithHeight[i - 1] + if (txHeight >= previous.height && txHeight < abisWithHeight[i].height) { + return previous.abi } } } From 0da7ba87ab72d1b5029a7be8407ddbbe8b1c0675 Mon Sep 17 00:00:00 2001 From: Dario Date: Tue, 5 Sep 2023 02:44:41 -0300 Subject: [PATCH 25/33] fix: export getBridgeAbi function instead of abi object from the previous implementation --- dist/index.js | 4 ++-- src/index.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dist/index.js b/dist/index.js index cf1ff87..ae2682b 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,7 +1,7 @@ "use strict";Object.defineProperty(exports, "__esModule", { value: true });Object.defineProperty(exports, "ContractParser", { enumerable: true, get: function () {return _ContractParser.ContractParser;} });Object.defineProperty(exports, "BcSearch", { enumerable: true, get: function () {return _BcSearch.BcSearch;} });Object.defineProperty(exports, "Contract", { enumerable: true, get: function () {return _Contract.default;} });exports.default = exports.abi = void 0;var _ContractParser = require("./lib/ContractParser"); var _BcSearch = require("./lib/BcSearch"); var _Contract = _interopRequireDefault(require("./lib/Contract")); -var _bridgeAbi = _interopRequireDefault(require("./lib/nativeContracts/bridgeAbi"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} -const abi = { bridge: _bridgeAbi.default };exports.abi = abi;var _default = +var _bridgeAbi = require("./lib/nativeContracts/bridgeAbi");function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} +const abi = { bridge: _bridgeAbi.getBridgeAbi };exports.abi = abi;var _default = _ContractParser.ContractParser;exports.default = _default; \ No newline at end of file diff --git a/src/index.js b/src/index.js index bcf3c36..46dcf2a 100644 --- a/src/index.js +++ b/src/index.js @@ -1,7 +1,7 @@ import { ContractParser } from './lib/ContractParser' import { BcSearch } from './lib/BcSearch' import Contract from './lib/Contract' -import bridge from './lib/nativeContracts/bridgeAbi' -const abi = { bridge } +import { getBridgeAbi } from './lib/nativeContracts/bridgeAbi' +const abi = { bridge: getBridgeAbi } export { ContractParser, BcSearch, Contract, abi } export default ContractParser From 4885edfacc05ce61624091666f1eb0b2717ae2f0 Mon Sep 17 00:00:00 2001 From: Dario Date: Fri, 6 Oct 2023 16:01:53 -0300 Subject: [PATCH 26/33] update package version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 385329a..ef1285b 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@rsksmart/rsk-contract-parser", - "version": "0.0.12", + "version": "1.0.0", "description": "", "main": "dist/index.js", "scripts": { From 7baeb57eea06d244ec9e6b6c722d202607e8476e Mon Sep 17 00:00:00 2001 From: Dario Date: Mon, 6 Nov 2023 13:09:58 -0300 Subject: [PATCH 27/33] feat: update npm packg version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ef1285b..8156cc9 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@rsksmart/rsk-contract-parser", - "version": "1.0.0", + "version": "1.0.1", "description": "", "main": "dist/index.js", "scripts": { From 50223ef5080aa68453f89d1a493bf35d410fc6e1 Mon Sep 17 00:00:00 2001 From: Dario Date: Tue, 7 Nov 2023 15:58:01 -0300 Subject: [PATCH 28/33] update package version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 385329a..00f0cd4 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@rsksmart/rsk-contract-parser", - "version": "0.0.12", + "version": "1.0.2", "description": "", "main": "dist/index.js", "scripts": { From 0a4dda8a8b43263dfb6ccc8608c9837a93d0f7cc Mon Sep 17 00:00:00 2001 From: Jesus Steer Date: Thu, 14 Dec 2023 10:28:15 -0500 Subject: [PATCH 29/33] fix: removed duplicate definition from logs --- dist/examples/getDeployment.js | 3 +- dist/examples/getDeployment.js.map | 1 + dist/index.js | 15 ++- dist/index.js.map | 1 + dist/lib/Abi.js | 5 +- dist/lib/Abi.js.map | 1 + dist/lib/BcSearch.js | 15 +-- dist/lib/BcSearch.js.map | 1 + dist/lib/Contract.js | 7 +- dist/lib/Contract.js.map | 1 + dist/lib/ContractParser.js | 35 +++---- dist/lib/ContractParser.js.map | 1 + dist/lib/EventDecoder.js | 21 +++-- dist/lib/EventDecoder.js.map | 1 + dist/lib/btcUtils.js | 27 +++--- dist/lib/btcUtils.js.map | 1 + dist/lib/compileJsonAbis.js | 21 +++-- dist/lib/compileJsonAbis.js.map | 1 + dist/lib/interfacesIds.js | 31 ++++--- dist/lib/interfacesIds.js.map | 1 + dist/lib/nativeContracts/FakeABI.js | 93 ++++++++++--------- dist/lib/nativeContracts/FakeABI.js.map | 1 + dist/lib/nativeContracts/NativeContracts.js | 23 ++--- .../nativeContracts/NativeContracts.js.map | 1 + .../nativeContracts/NativeContractsDecoder.js | 5 +- .../NativeContractsDecoder.js.map | 1 + .../nativeContracts/NativeContractsEvents.js | 27 +++--- .../NativeContractsEvents.js.map | 1 + dist/lib/nativeContracts/bridgeAbi.js | 11 ++- dist/lib/nativeContracts/bridgeAbi.js.map | 1 + dist/lib/nod3Connect.js | 13 +-- dist/lib/nod3Connect.js.map | 1 + dist/lib/types.js | 27 +++--- dist/lib/types.js.map | 1 + dist/lib/utils.js | 51 +++++----- dist/lib/utils.js.map | 1 + src/index.js | 8 ++ 37 files changed, 254 insertions(+), 202 deletions(-) create mode 100644 dist/examples/getDeployment.js.map create mode 100644 dist/index.js.map create mode 100644 dist/lib/Abi.js.map create mode 100644 dist/lib/BcSearch.js.map create mode 100644 dist/lib/Contract.js.map create mode 100644 dist/lib/ContractParser.js.map create mode 100644 dist/lib/EventDecoder.js.map create mode 100644 dist/lib/btcUtils.js.map create mode 100644 dist/lib/compileJsonAbis.js.map create mode 100644 dist/lib/interfacesIds.js.map create mode 100644 dist/lib/nativeContracts/FakeABI.js.map create mode 100644 dist/lib/nativeContracts/NativeContracts.js.map create mode 100644 dist/lib/nativeContracts/NativeContractsDecoder.js.map create mode 100644 dist/lib/nativeContracts/NativeContractsEvents.js.map create mode 100644 dist/lib/nativeContracts/bridgeAbi.js.map create mode 100644 dist/lib/nod3Connect.js.map create mode 100644 dist/lib/types.js.map create mode 100644 dist/lib/utils.js.map diff --git a/dist/examples/getDeployment.js b/dist/examples/getDeployment.js index bd42546..a0a7703 100644 --- a/dist/examples/getDeployment.js +++ b/dist/examples/getDeployment.js @@ -38,4 +38,5 @@ function help(msg) { console.log(`Set environment variable URL to change node url`); console.log(`Example: export URL=http://localhost:4444`); process.exit(0); -} \ No newline at end of file +} +//# sourceMappingURL=getDeployment.js.map \ No newline at end of file diff --git a/dist/examples/getDeployment.js.map b/dist/examples/getDeployment.js.map new file mode 100644 index 0000000..edf4f53 --- /dev/null +++ b/dist/examples/getDeployment.js.map @@ -0,0 +1 @@ +{"version":3,"file":"getDeployment.js","names":["_index","require","_nod3Connect","_rskUtils","url","process","env","address","argv","highBlock","help","isAddress","nod3","nod3Connect","console","log","search","code","eth","getCode","parseInt","Error","bcsearch","BcSearch","res","deploymentTx","toLowerCase","err","error","exit","msg"],"sources":["../../src/examples/getDeployment.js"],"sourcesContent":["import { BcSearch } from '../index'\nimport { nod3Connect } from '../lib/nod3Connect'\nimport { isAddress } from '@rsksmart/rsk-utils'\n\nconst url = process.env['URL'] || 'http://localhost:4444'\nconst address = process.argv[2]\nconst highBlock = process.argv[3]\n\nif (!address) help()\nif (!isAddress(address)) help(`Invalid address \"${address}\"`)\n\nconst nod3 = nod3Connect(url)\n\nconsole.log(`Searching in node: ${url}`)\nsearch(address, highBlock)\n\nasync function search (address, highBlock) {\n try {\n highBlock = highBlock || 'latest'\n const code = await nod3.eth.getCode(address, highBlock)\n if (!parseInt(code)) {\n throw new Error(`The address ${address} has no code at block ${highBlock}`)\n }\n const bcsearch = BcSearch(nod3)\n let res = await bcsearch.deploymentTx(address.toLowerCase(), { highBlock })\n console.log(res)\n } catch (err) {\n console.error(err)\n process.exit(9)\n }\n}\n\nfunction help (msg) {\n if (msg) console.log(`${msg}`)\n console.log('Usage:')\n console.log(`node ${process.argv[1]} address [highestBlock]`)\n console.log()\n console.log(`Set environment variable URL to change node url`)\n console.log(`Example: export URL=http://localhost:4444`)\n process.exit(0)\n}\n"],"mappings":"aAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;;AAEA,MAAMG,GAAG,GAAGC,OAAO,CAACC,GAAG,CAAC,KAAK,CAAC,IAAI,uBAAuB;AACzD,MAAMC,OAAO,GAAGF,OAAO,CAACG,IAAI,CAAC,CAAC,CAAC;AAC/B,MAAMC,SAAS,GAAGJ,OAAO,CAACG,IAAI,CAAC,CAAC,CAAC;;AAEjC,IAAI,CAACD,OAAO,EAAEG,IAAI,CAAC,CAAC;AACpB,IAAI,CAAC,IAAAC,mBAAS,EAACJ,OAAO,CAAC,EAAEG,IAAI,CAAE,oBAAmBH,OAAQ,GAAE,CAAC;;AAE7D,MAAMK,IAAI,GAAG,IAAAC,wBAAW,EAACT,GAAG,CAAC;;AAE7BU,OAAO,CAACC,GAAG,CAAE,sBAAqBX,GAAI,EAAC,CAAC;AACxCY,MAAM,CAACT,OAAO,EAAEE,SAAS,CAAC;;AAE1B,eAAeO,MAAMA,CAAET,OAAO,EAAEE,SAAS,EAAE;EACzC,IAAI;IACFA,SAAS,GAAGA,SAAS,IAAI,QAAQ;IACjC,MAAMQ,IAAI,GAAG,MAAML,IAAI,CAACM,GAAG,CAACC,OAAO,CAACZ,OAAO,EAAEE,SAAS,CAAC;IACvD,IAAI,CAACW,QAAQ,CAACH,IAAI,CAAC,EAAE;MACnB,MAAM,IAAII,KAAK,CAAE,eAAcd,OAAQ,yBAAwBE,SAAU,EAAC,CAAC;IAC7E;IACA,MAAMa,QAAQ,GAAG,IAAAC,eAAQ,EAACX,IAAI,CAAC;IAC/B,IAAIY,GAAG,GAAG,MAAMF,QAAQ,CAACG,YAAY,CAAClB,OAAO,CAACmB,WAAW,CAAC,CAAC,EAAE,EAAEjB,SAAS,CAAC,CAAC,CAAC;IAC3EK,OAAO,CAACC,GAAG,CAACS,GAAG,CAAC;EAClB,CAAC,CAAC,OAAOG,GAAG,EAAE;IACZb,OAAO,CAACc,KAAK,CAACD,GAAG,CAAC;IAClBtB,OAAO,CAACwB,IAAI,CAAC,CAAC,CAAC;EACjB;AACF;;AAEA,SAASnB,IAAIA,CAAEoB,GAAG,EAAE;EAClB,IAAIA,GAAG,EAAEhB,OAAO,CAACC,GAAG,CAAE,GAAEe,GAAI,EAAC,CAAC;EAC9BhB,OAAO,CAACC,GAAG,CAAC,QAAQ,CAAC;EACrBD,OAAO,CAACC,GAAG,CAAE,QAAOV,OAAO,CAACG,IAAI,CAAC,CAAC,CAAE,yBAAwB,CAAC;EAC7DM,OAAO,CAACC,GAAG,CAAC,CAAC;EACbD,OAAO,CAACC,GAAG,CAAE,iDAAgD,CAAC;EAC9DD,OAAO,CAACC,GAAG,CAAE,2CAA0C,CAAC;EACxDV,OAAO,CAACwB,IAAI,CAAC,CAAC,CAAC;AACjB"} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index ae2682b..012e0b9 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,7 +1,16 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });Object.defineProperty(exports, "ContractParser", { enumerable: true, get: function () {return _ContractParser.ContractParser;} });Object.defineProperty(exports, "BcSearch", { enumerable: true, get: function () {return _BcSearch.BcSearch;} });Object.defineProperty(exports, "Contract", { enumerable: true, get: function () {return _Contract.default;} });exports.default = exports.abi = void 0;var _ContractParser = require("./lib/ContractParser"); +"use strict";Object.defineProperty(exports, "__esModule", { value: true });Object.defineProperty(exports, "BcSearch", { enumerable: true, get: function () {return _BcSearch.BcSearch;} });Object.defineProperty(exports, "Contract", { enumerable: true, get: function () {return _Contract.default;} });Object.defineProperty(exports, "ContractParser", { enumerable: true, get: function () {return _ContractParser.ContractParser;} });exports.default = exports.abi = void 0;var _ContractParser = require("./lib/ContractParser"); var _BcSearch = require("./lib/BcSearch"); var _Contract = _interopRequireDefault(require("./lib/Contract")); var _bridgeAbi = require("./lib/nativeContracts/bridgeAbi");function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} -const abi = { bridge: _bridgeAbi.getBridgeAbi };exports.abi = abi;var _default = +const abi = exports.abi = { bridge: _bridgeAbi.getBridgeAbi };var _default = exports.default = -_ContractParser.ContractParser;exports.default = _default; \ No newline at end of file +_ContractParser.ContractParser; + +// HOTFIX: because the dependency @ethersproject/abi:5.7.0 spam the logs with 'duplicate definition' warning, this temporary fix should silence those messages until a newer version of the library fixes the issue +const originalConsoleLog = console.log; +console.log = function (message) { + if (!String(message).includes('duplicate definition')) { + originalConsoleLog(message); + } +}; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/index.js.map b/dist/index.js.map new file mode 100644 index 0000000..c5ff85a --- /dev/null +++ b/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","names":["_ContractParser","require","_BcSearch","_Contract","_interopRequireDefault","_bridgeAbi","obj","__esModule","default","abi","exports","bridge","getBridgeAbi","_default","ContractParser","originalConsoleLog","console","log","message","String","includes"],"sources":["../src/index.js"],"sourcesContent":["import { ContractParser } from './lib/ContractParser'\nimport { BcSearch } from './lib/BcSearch'\nimport Contract from './lib/Contract'\nimport { getBridgeAbi } from './lib/nativeContracts/bridgeAbi'\nconst abi = { bridge: getBridgeAbi }\nexport { ContractParser, BcSearch, Contract, abi }\nexport default ContractParser\n\n// HOTFIX: because the dependency @ethersproject/abi:5.7.0 spam the logs with 'duplicate definition' warning, this temporary fix should silence those messages until a newer version of the library fixes the issue\nconst originalConsoleLog = console.log\nconsole.log = function (message) {\n if (!String(message).includes('duplicate definition')) {\n originalConsoleLog(message)\n }\n}\n"],"mappings":"mdAAA,IAAAA,eAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA,oCAA8D,SAAAG,uBAAAE,GAAA,UAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAC9D,MAAMG,GAAG,GAAAC,OAAA,CAAAD,GAAA,GAAG,EAAEE,MAAM,EAAEC,uBAAY,CAAC,CAAC,KAAAC,QAAA,GAAAH,OAAA,CAAAF,OAAA;;AAErBM,8BAAc;;AAE7B;AACA,MAAMC,kBAAkB,GAAGC,OAAO,CAACC,GAAG;AACtCD,OAAO,CAACC,GAAG,GAAG,UAAUC,OAAO,EAAE;EAC/B,IAAI,CAACC,MAAM,CAACD,OAAO,CAAC,CAACE,QAAQ,CAAC,sBAAsB,CAAC,EAAE;IACrDL,kBAAkB,CAACG,OAAO,CAAC;EAC7B;AACF,CAAC"} \ No newline at end of file diff --git a/dist/lib/Abi.js b/dist/lib/Abi.js index 8be5623..6ab57d7 100755 --- a/dist/lib/Abi.js +++ b/dist/lib/Abi.js @@ -1,2 +1,3 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _compiled_abi = _interopRequireDefault(require("./compiled_abi.json"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}var _default = -_compiled_abi.default;exports.default = _default; \ No newline at end of file +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _compiled_abi = _interopRequireDefault(require("./compiled_abi.json"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}var _default = exports.default = +_compiled_abi.default; +//# sourceMappingURL=Abi.js.map \ No newline at end of file diff --git a/dist/lib/Abi.js.map b/dist/lib/Abi.js.map new file mode 100644 index 0000000..b8fa3ab --- /dev/null +++ b/dist/lib/Abi.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Abi.js","names":["_compiled_abi","_interopRequireDefault","require","obj","__esModule","default","_default","exports","abi"],"sources":["../../src/lib/Abi.js"],"sourcesContent":["import abi from './compiled_abi.json'\nexport default abi\n"],"mappings":"oGAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA,yBAAqC,SAAAD,uBAAAE,GAAA,UAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA,QAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA;AACtBG,qBAAG"} \ No newline at end of file diff --git a/dist/lib/BcSearch.js b/dist/lib/BcSearch.js index 675b0e5..9430283 100644 --- a/dist/lib/BcSearch.js +++ b/dist/lib/BcSearch.js @@ -2,7 +2,7 @@ var _rskUtils = require("@rsksmart/rsk-utils"); function BcSearch(nod3) { - const getBlock = hashOrNumber => { + const getBlock = (hashOrNumber) => { return nod3.eth.getBlock(hashOrNumber); }; @@ -27,7 +27,7 @@ function BcSearch(nod3) { }; const deploymentBlock = (address, highBlock, lowBlock) => { - return block(blockNumber => isContractAtBlock(address, blockNumber), highBlock, lowBlock); + return block((blockNumber) => isContractAtBlock(address, blockNumber), highBlock, lowBlock); }; const searchReceipt = async (transactions, cb) => { for (let tx of transactions) { @@ -44,11 +44,11 @@ function BcSearch(nod3) { try { blockNumber = blockNumber || (await deploymentBlock(address, highBlock)); block = block || (await nod3.eth.getBlock(blockNumber, true)); - let transactions = block.transactions.filter(tx => !(0, _rskUtils.isAddress)(tx.to)); - let transaction = await searchReceipt(transactions, receipt => receipt.contractAddress === address); + let transactions = block.transactions.filter((tx) => !(0, _rskUtils.isAddress)(tx.to)); + let transaction = await searchReceipt(transactions, (receipt) => receipt.contractAddress === address); if (!transaction) {// internal transactions blockTrace = blockTrace || (await nod3.trace.block(block.hash)); - let internalTx = blockTrace.find(trace => isItxDeployment(address, trace)); + let internalTx = blockTrace.find((trace) => isItxDeployment(address, trace)); if (internalTx) transaction = { internalTx }; } if (transaction) transaction.timestamp = block.timestamp; @@ -59,6 +59,7 @@ function BcSearch(nod3) { }; return Object.freeze({ block, deploymentBlock, deploymentTx, isItxDeployment }); -}var _default = +}var _default = exports.default = -BcSearch;exports.default = _default; \ No newline at end of file +BcSearch; +//# sourceMappingURL=BcSearch.js.map \ No newline at end of file diff --git a/dist/lib/BcSearch.js.map b/dist/lib/BcSearch.js.map new file mode 100644 index 0000000..e33e690 --- /dev/null +++ b/dist/lib/BcSearch.js.map @@ -0,0 +1 @@ +{"version":3,"file":"BcSearch.js","names":["_utils","require","_rskUtils","BcSearch","nod3","getBlock","hashOrNumber","eth","block","searchCb","highBlock","lowBlock","number","binarySearchNumber","err","Promise","reject","isContractAtBlock","address","blockNumber","code","getCode","parseInt","isNaN","deploymentBlock","searchReceipt","transactions","cb","tx","receipt","getTransactionReceipt","hash","isItxDeployment","itx","result","type","contractAddress","undefined","deploymentTx","blockTrace","filter","isAddress","to","transaction","trace","internalTx","find","timestamp","Object","freeze","_default","exports","default"],"sources":["../../src/lib/BcSearch.js"],"sourcesContent":["import { binarySearchNumber } from './utils'\nimport { isAddress } from '@rsksmart/rsk-utils'\n\nexport function BcSearch (nod3) {\n const getBlock = (hashOrNumber) => {\n return nod3.eth.getBlock(hashOrNumber)\n }\n\n const block = async (searchCb, highBlock, lowBlock) => {\n try {\n if (!highBlock) {\n let block = await getBlock('latest')\n let { number } = block\n highBlock = number\n }\n lowBlock = lowBlock || 1\n return binarySearchNumber(searchCb, highBlock, lowBlock)\n } catch (err) {\n return Promise.reject(err)\n }\n }\n\n const isContractAtBlock = async (address, blockNumber) => {\n let code = await nod3.eth.getCode(address, blockNumber)\n code = parseInt(code)\n return !isNaN(code) && code > 0\n }\n\n const deploymentBlock = (address, highBlock, lowBlock) => {\n return block(blockNumber => isContractAtBlock(address, blockNumber), highBlock, lowBlock)\n }\n const searchReceipt = async (transactions, cb) => {\n for (let tx of transactions) {\n let receipt = await nod3.eth.getTransactionReceipt(tx.hash)\n if (cb(receipt)) return { tx, receipt }\n }\n }\n const isItxDeployment = (address, itx) => {\n let { result, type } = itx\n let contractAddress = (result) ? result.address : undefined\n return type === 'create' && contractAddress === address\n }\n const deploymentTx = async (address, { blockNumber, blockTrace, block, highBlock } = {}) => {\n try {\n blockNumber = blockNumber || await deploymentBlock(address, highBlock)\n block = block || await nod3.eth.getBlock(blockNumber, true)\n let transactions = block.transactions.filter(tx => !isAddress(tx.to))\n let transaction = await searchReceipt(transactions, receipt => receipt.contractAddress === address)\n if (!transaction) { // internal transactions\n blockTrace = blockTrace || await nod3.trace.block(block.hash)\n let internalTx = blockTrace.find(trace => isItxDeployment(address, trace))\n if (internalTx) transaction = { internalTx }\n }\n if (transaction) transaction.timestamp = block.timestamp\n return transaction\n } catch (err) {\n return Promise.reject(err)\n }\n }\n\n return Object.freeze({ block, deploymentBlock, deploymentTx, isItxDeployment })\n}\n\nexport default BcSearch\n"],"mappings":"gIAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;;AAEO,SAASE,QAAQA,CAAEC,IAAI,EAAE;EAC9B,MAAMC,QAAQ,GAAGA,CAACC,YAAY,KAAK;IACjC,OAAOF,IAAI,CAACG,GAAG,CAACF,QAAQ,CAACC,YAAY,CAAC;EACxC,CAAC;;EAED,MAAME,KAAK,GAAG,MAAAA,CAAOC,QAAQ,EAAEC,SAAS,EAAEC,QAAQ,KAAK;IACrD,IAAI;MACF,IAAI,CAACD,SAAS,EAAE;QACd,IAAIF,KAAK,GAAG,MAAMH,QAAQ,CAAC,QAAQ,CAAC;QACpC,IAAI,EAAEO,MAAM,CAAC,CAAC,GAAGJ,KAAK;QACtBE,SAAS,GAAGE,MAAM;MACpB;MACAD,QAAQ,GAAGA,QAAQ,IAAI,CAAC;MACxB,OAAO,IAAAE,yBAAkB,EAACJ,QAAQ,EAAEC,SAAS,EAAEC,QAAQ,CAAC;IAC1D,CAAC,CAAC,OAAOG,GAAG,EAAE;MACZ,OAAOC,OAAO,CAACC,MAAM,CAACF,GAAG,CAAC;IAC5B;EACF,CAAC;;EAED,MAAMG,iBAAiB,GAAG,MAAAA,CAAOC,OAAO,EAAEC,WAAW,KAAK;IACxD,IAAIC,IAAI,GAAG,MAAMhB,IAAI,CAACG,GAAG,CAACc,OAAO,CAACH,OAAO,EAAEC,WAAW,CAAC;IACvDC,IAAI,GAAGE,QAAQ,CAACF,IAAI,CAAC;IACrB,OAAO,CAACG,KAAK,CAACH,IAAI,CAAC,IAAIA,IAAI,GAAG,CAAC;EACjC,CAAC;;EAED,MAAMI,eAAe,GAAGA,CAACN,OAAO,EAAER,SAAS,EAAEC,QAAQ,KAAK;IACxD,OAAOH,KAAK,CAAC,CAAAW,WAAW,KAAIF,iBAAiB,CAACC,OAAO,EAAEC,WAAW,CAAC,EAAET,SAAS,EAAEC,QAAQ,CAAC;EAC3F,CAAC;EACD,MAAMc,aAAa,GAAG,MAAAA,CAAOC,YAAY,EAAEC,EAAE,KAAK;IAChD,KAAK,IAAIC,EAAE,IAAIF,YAAY,EAAE;MAC3B,IAAIG,OAAO,GAAG,MAAMzB,IAAI,CAACG,GAAG,CAACuB,qBAAqB,CAACF,EAAE,CAACG,IAAI,CAAC;MAC3D,IAAIJ,EAAE,CAACE,OAAO,CAAC,EAAE,OAAO,EAAED,EAAE,EAAEC,OAAO,CAAC,CAAC;IACzC;EACF,CAAC;EACD,MAAMG,eAAe,GAAGA,CAACd,OAAO,EAAEe,GAAG,KAAK;IACxC,IAAI,EAAEC,MAAM,EAAEC,IAAI,CAAC,CAAC,GAAGF,GAAG;IAC1B,IAAIG,eAAe,GAAIF,MAAM,GAAIA,MAAM,CAAChB,OAAO,GAAGmB,SAAS;IAC3D,OAAOF,IAAI,KAAK,QAAQ,IAAIC,eAAe,KAAKlB,OAAO;EACzD,CAAC;EACD,MAAMoB,YAAY,GAAG,MAAAA,CAAOpB,OAAO,EAAE,EAAEC,WAAW,EAAEoB,UAAU,EAAE/B,KAAK,EAAEE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK;IAC1F,IAAI;MACFS,WAAW,GAAGA,WAAW,KAAI,MAAMK,eAAe,CAACN,OAAO,EAAER,SAAS,CAAC;MACtEF,KAAK,GAAGA,KAAK,KAAI,MAAMJ,IAAI,CAACG,GAAG,CAACF,QAAQ,CAACc,WAAW,EAAE,IAAI,CAAC;MAC3D,IAAIO,YAAY,GAAGlB,KAAK,CAACkB,YAAY,CAACc,MAAM,CAAC,CAAAZ,EAAE,KAAI,CAAC,IAAAa,mBAAS,EAACb,EAAE,CAACc,EAAE,CAAC,CAAC;MACrE,IAAIC,WAAW,GAAG,MAAMlB,aAAa,CAACC,YAAY,EAAE,CAAAG,OAAO,KAAIA,OAAO,CAACO,eAAe,KAAKlB,OAAO,CAAC;MACnG,IAAI,CAACyB,WAAW,EAAE,CAAE;QAClBJ,UAAU,GAAGA,UAAU,KAAI,MAAMnC,IAAI,CAACwC,KAAK,CAACpC,KAAK,CAACA,KAAK,CAACuB,IAAI,CAAC;QAC7D,IAAIc,UAAU,GAAGN,UAAU,CAACO,IAAI,CAAC,CAAAF,KAAK,KAAIZ,eAAe,CAACd,OAAO,EAAE0B,KAAK,CAAC,CAAC;QAC1E,IAAIC,UAAU,EAAEF,WAAW,GAAG,EAAEE,UAAU,CAAC,CAAC;MAC9C;MACA,IAAIF,WAAW,EAAEA,WAAW,CAACI,SAAS,GAAGvC,KAAK,CAACuC,SAAS;MACxD,OAAOJ,WAAW;IACpB,CAAC,CAAC,OAAO7B,GAAG,EAAE;MACZ,OAAOC,OAAO,CAACC,MAAM,CAACF,GAAG,CAAC;IAC5B;EACF,CAAC;;EAED,OAAOkC,MAAM,CAACC,MAAM,CAAC,EAAEzC,KAAK,EAAEgB,eAAe,EAAEc,YAAY,EAAEN,eAAe,CAAC,CAAC,CAAC;AACjF,CAAC,IAAAkB,QAAA,GAAAC,OAAA,CAAAC,OAAA;;AAEcjD,QAAQ"} \ No newline at end of file diff --git a/dist/lib/Contract.js b/dist/lib/Contract.js index 5fff330..0cfa450 100755 --- a/dist/lib/Contract.js +++ b/dist/lib/Contract.js @@ -4,11 +4,11 @@ function Contract(abi, { address, nod3 } = {}) { if (!abi || typeof abi !== 'object') throw new Error('Invalid abi'); const contractInterface = new _abi.Interface(abi); - const at = newAddress => { + const at = (newAddress) => { address = newAddress; }; - const setNod3 = nod3Instance => { + const setNod3 = (nod3Instance) => { nod3 = nod3Instance; }; @@ -37,4 +37,5 @@ function Contract(abi, { address, nod3 } = {}) { } }; return Object.freeze({ at, setNod3, encodeCall, decodeCall, call }); -} \ No newline at end of file +} +//# sourceMappingURL=Contract.js.map \ No newline at end of file diff --git a/dist/lib/Contract.js.map b/dist/lib/Contract.js.map new file mode 100644 index 0000000..565c0a6 --- /dev/null +++ b/dist/lib/Contract.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Contract.js","names":["_abi","require","Contract","abi","address","nod3","Error","contractInterface","Interface","at","newAddress","setNod3","nod3Instance","encodeCall","methodName","params","encodeFunctionData","decodeCall","data","outputs","getFunction","decoded","decodeFunctionResult","Array","isArray","length","call","txData","to","tx","Object","assign","result","eth","err","Promise","reject","freeze"],"sources":["../../src/lib/Contract.js"],"sourcesContent":["import { Interface } from '@ethersproject/abi'\n\nexport default function Contract (abi, { address, nod3 } = {}) {\n if (!abi || typeof abi !== 'object') throw new Error('Invalid abi')\n const contractInterface = new Interface(abi)\n\n const at = newAddress => {\n address = newAddress\n }\n\n const setNod3 = nod3Instance => {\n nod3 = nod3Instance\n }\n\n // const isEvent = name => abiFind('event', name)\n\n const encodeCall = (methodName, params = []) => contractInterface.encodeFunctionData(methodName, params)\n\n const decodeCall = (methodName, data) => {\n const { outputs } = contractInterface.getFunction(methodName)\n const decoded = contractInterface.decodeFunctionResult(methodName, data)\n return (Array.isArray(decoded) && outputs && outputs.length < 2) ? decoded[0] : decoded\n }\n\n const call = async (methodName, params = [], txData = {}) => {\n try {\n if (!nod3) throw new Error(`Set nod3 instance before call`)\n if (!address) throw new Error(`The contract address is not defined`)\n if (!Array.isArray(params)) throw new Error(`Params must be an array`)\n const data = encodeCall(methodName, params)\n const to = address\n const tx = Object.assign(txData, { to, data })\n const result = await nod3.eth.call(tx)\n return decodeCall(methodName, result)\n } catch (err) {\n return Promise.reject(err)\n }\n }\n return Object.freeze({ at, setNod3, encodeCall, decodeCall, call })\n}\n"],"mappings":"sGAAA,IAAAA,IAAA,GAAAC,OAAA;;AAEe,SAASC,QAAQA,CAAEC,GAAG,EAAE,EAAEC,OAAO,EAAEC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;EAC7D,IAAI,CAACF,GAAG,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE,MAAM,IAAIG,KAAK,CAAC,aAAa,CAAC;EACnE,MAAMC,iBAAiB,GAAG,IAAIC,cAAS,CAACL,GAAG,CAAC;;EAE5C,MAAMM,EAAE,GAAGA,CAAAC,UAAU,KAAI;IACvBN,OAAO,GAAGM,UAAU;EACtB,CAAC;;EAED,MAAMC,OAAO,GAAGA,CAAAC,YAAY,KAAI;IAC9BP,IAAI,GAAGO,YAAY;EACrB,CAAC;;EAED;;EAEA,MAAMC,UAAU,GAAGA,CAACC,UAAU,EAAEC,MAAM,GAAG,EAAE,KAAKR,iBAAiB,CAACS,kBAAkB,CAACF,UAAU,EAAEC,MAAM,CAAC;;EAExG,MAAME,UAAU,GAAGA,CAACH,UAAU,EAAEI,IAAI,KAAK;IACvC,MAAM,EAAEC,OAAO,CAAC,CAAC,GAAGZ,iBAAiB,CAACa,WAAW,CAACN,UAAU,CAAC;IAC7D,MAAMO,OAAO,GAAGd,iBAAiB,CAACe,oBAAoB,CAACR,UAAU,EAAEI,IAAI,CAAC;IACxE,OAAQK,KAAK,CAACC,OAAO,CAACH,OAAO,CAAC,IAAIF,OAAO,IAAIA,OAAO,CAACM,MAAM,GAAG,CAAC,GAAIJ,OAAO,CAAC,CAAC,CAAC,GAAGA,OAAO;EACzF,CAAC;;EAED,MAAMK,IAAI,GAAG,MAAAA,CAAOZ,UAAU,EAAEC,MAAM,GAAG,EAAE,EAAEY,MAAM,GAAG,CAAC,CAAC,KAAK;IAC3D,IAAI;MACF,IAAI,CAACtB,IAAI,EAAE,MAAM,IAAIC,KAAK,CAAE,+BAA8B,CAAC;MAC3D,IAAI,CAACF,OAAO,EAAE,MAAM,IAAIE,KAAK,CAAE,qCAAoC,CAAC;MACpE,IAAI,CAACiB,KAAK,CAACC,OAAO,CAACT,MAAM,CAAC,EAAE,MAAM,IAAIT,KAAK,CAAE,yBAAwB,CAAC;MACtE,MAAMY,IAAI,GAAGL,UAAU,CAACC,UAAU,EAAEC,MAAM,CAAC;MAC3C,MAAMa,EAAE,GAAGxB,OAAO;MAClB,MAAMyB,EAAE,GAAGC,MAAM,CAACC,MAAM,CAACJ,MAAM,EAAE,EAAEC,EAAE,EAAEV,IAAI,CAAC,CAAC,CAAC;MAC9C,MAAMc,MAAM,GAAG,MAAM3B,IAAI,CAAC4B,GAAG,CAACP,IAAI,CAACG,EAAE,CAAC;MACtC,OAAOZ,UAAU,CAACH,UAAU,EAAEkB,MAAM,CAAC;IACvC,CAAC,CAAC,OAAOE,GAAG,EAAE;MACZ,OAAOC,OAAO,CAACC,MAAM,CAACF,GAAG,CAAC;IAC5B;EACF,CAAC;EACD,OAAOJ,MAAM,CAACO,MAAM,CAAC,EAAE5B,EAAE,EAAEE,OAAO,EAAEE,UAAU,EAAEI,UAAU,EAAES,IAAI,CAAC,CAAC,CAAC;AACrE"} \ No newline at end of file diff --git a/dist/lib/ContractParser.js b/dist/lib/ContractParser.js index 8af52b4..b8f4547 100755 --- a/dist/lib/ContractParser.js +++ b/dist/lib/ContractParser.js @@ -16,8 +16,8 @@ var _utils = require("./utils");function _interopRequireDefault(obj) {return obj function mapInterfacesToERCs(interfaces) { return Object.keys(interfaces). - filter(k => interfaces[k] === true). - map(t => _types.contractsInterfaces[t] || t); + filter((k) => interfaces[k] === true). + map((t) => _types.contractsInterfaces[t] || t); } function hasMethodSelector(txInputData, selector) { @@ -67,8 +67,8 @@ class ContractParser { getAbiMethods() { let methods = {}; - this.abi.filter(def => def.type === 'function'). - map(m => { + this.abi.filter((def) => def.type === 'function'). + map((m) => { let sig = m[_types.ABI_SIGNATURE] || (0, _utils.abiSignatureData)(m); sig.name = m.name; methods[sig.method] = sig; @@ -77,7 +77,7 @@ class ContractParser { } parseTxLogs(logs, abi) { - return this.decodeLogs(logs, abi).map(event => { + return this.decodeLogs(logs, abi).map((event) => { this.addEventAddresses(event); event.abi = (0, _utils.removeAbiSignatureData)(event.abi); return event; @@ -96,7 +96,7 @@ class ContractParser { if (v.type === 'address[]') { let value = args[i] || []; if (Array.isArray(value)) {// temp fix to undecoded events - value.forEach(v => _addresses.push(v)); + value.forEach((v) => _addresses.push(v)); } else { let i = 0; while (2 + (i + 1) * 40 <= value.length) { @@ -119,7 +119,7 @@ class ContractParser { } const { isNativeContract } = this.nativeContracts; const { nativeContractsEvents } = this; - return logs.map(log => { + return logs.map((log) => { const { address } = log; const decoder = isNativeContract(address) ? nativeContractsEvents.getEventDecoder(log) : eventDecoder; return decoder.decodeLog(log); @@ -145,11 +145,11 @@ class ContractParser { async getTokenData(contract, { methods } = {}) { methods = methods || ['name', 'symbol', 'decimals', 'totalSupply']; let result = await Promise.all( - methods.map((m) => - this.call(m, contract). - then(res => res). - catch(err => this.log.debug(`[${contract.address}] Error executing ${m} Error: ${err}`)))); - + methods.map((m) => + this.call(m, contract). + then((res) => res). + catch((err) => this.log.debug(`[${contract.address}] Error executing ${m} Error: ${err}`))) + ); return result.reduce((v, a, i) => { let name = methods[i]; v[name] = a; @@ -160,7 +160,7 @@ class ContractParser { getMethodsBySelectors(txInputData) { let methods = this.getMethodsSelectors(); return Object.keys(methods). - filter(method => hasMethodSelector(txInputData, methods[method]) === true); + filter((method) => hasMethodSelector(txInputData, methods[method]) === true); } async getContractInfo(txInputData, contract) { @@ -230,7 +230,7 @@ class ContractParser { getInterfacesByMethods(methods, isErc165) { return Object.keys(_interfacesIds.default). - map(i => { + map((i) => { return [i, (0, _rskUtils.includesAll)(methods, _interfacesIds.default[i].methods)]; }). reduce((obj, value) => { @@ -257,7 +257,8 @@ class ContractParser { } catch (err) { return Promise.reject(err); } - }}exports.ContractParser = ContractParser;var _default = - + } +}exports.ContractParser = ContractParser;var _default = exports.default = -ContractParser;exports.default = _default; \ No newline at end of file +ContractParser; +//# sourceMappingURL=ContractParser.js.map \ No newline at end of file diff --git a/dist/lib/ContractParser.js.map b/dist/lib/ContractParser.js.map new file mode 100644 index 0000000..9cf0bb9 --- /dev/null +++ b/dist/lib/ContractParser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ContractParser.js","names":["_interfacesIds","_interopRequireDefault","require","_rskUtils","_NativeContractsDecoder","_NativeContracts","_Contract","_EventDecoder","_Abi","_types","_utils","obj","__esModule","default","mapInterfacesToERCs","interfaces","Object","keys","filter","k","map","t","contractsInterfaces","hasMethodSelector","txInputData","selector","includes","ContractParser","constructor","abi","log","initConfig","nod3","txBlockNumber","net","netId","id","undefined","setAbi","defaultABI","console","nativeContracts","NativeContracts","bitcoinNetwork","bitcoinRskNetWorks","nativeContractsEvents","NativeContractsDecoder","setNod3","getNativeContractAddress","name","getMethodsSelectors","selectors","methods","getAbiMethods","m","method","signature","soliditySignature","soliditySelector","def","type","sig","ABI_SIGNATURE","abiSignatureData","parseTxLogs","logs","decodeLogs","event","addEventAddresses","removeAbiSignatureData","args","_addresses","inputs","forEach","v","i","push","value","Array","isArray","length","slice","Set","eventDecoder","EventDecoder","Error","isNativeContract","address","decoder","getEventDecoder","decodeLog","makeContract","Contract","call","contract","params","options","res","err","warn","getTokenData","result","Promise","all","then","catch","debug","reduce","a","getMethodsBySelectors","getContractInfo","getContractImplementedInterfaces","getEIP1967Info","contractAddress","isUpgradeable","impContractAddress","isERC1967","proxyContractBytecode","getContractCodeFromNode","getInterfacesByMethods","isErc165","includesAll","implementsErc165","getInterfacesERC165","storedValue","eth","getStorageAt","getContractCodeAt","ifaces","interfacesIds","supportsInterface","interfaceId","gas","first","ERC165","second","reject","exports","_default"],"sources":["../../src/lib/ContractParser.js"],"sourcesContent":["import interfacesIds from './interfacesIds'\nimport { includesAll } from '@rsksmart/rsk-utils'\nimport NativeContractsDecoder from './nativeContracts/NativeContractsDecoder'\nimport NativeContracts from './nativeContracts/NativeContracts'\nimport Contract from './Contract'\nimport EventDecoder from './EventDecoder'\nimport defaultABI from './Abi'\nimport { ABI_SIGNATURE, bitcoinRskNetWorks, contractsInterfaces } from './types'\nimport {\n setAbi,\n removeAbiSignatureData,\n abiSignatureData,\n soliditySelector,\n soliditySignature\n} from './utils'\n\nfunction mapInterfacesToERCs (interfaces) {\n return Object.keys(interfaces)\n .filter(k => interfaces[k] === true)\n .map(t => contractsInterfaces[t] || t)\n}\n\nfunction hasMethodSelector (txInputData, selector) {\n return selector && txInputData && txInputData.includes(selector)\n}\n\nexport class ContractParser {\n constructor ({ abi, log, initConfig, nod3, txBlockNumber } = {}) {\n initConfig = initConfig || {}\n const { net } = initConfig\n this.netId = (net) ? net.id : undefined\n this.abi = setAbi(abi || defaultABI)\n this.log = log || console\n this.nod3 = nod3\n this.nativeContracts = NativeContracts(initConfig)\n if (this.netId) {\n let bitcoinNetwork = bitcoinRskNetWorks[this.netId]\n this.nativeContractsEvents = NativeContractsDecoder({ bitcoinNetwork, txBlockNumber })\n }\n }\n\n setNod3 (nod3) {\n this.nod3 = nod3\n }\n\n getNativeContractAddress (name) {\n const { nativeContracts } = this\n if (nativeContracts) {\n return nativeContracts.getNativeContractAddress(name)\n }\n }\n\n setAbi (abi) {\n this.abi = setAbi(abi)\n }\n\n getMethodsSelectors () {\n let selectors = {}\n let methods = this.getAbiMethods()\n for (let m in methods) {\n let method = methods[m]\n let signature = method.signature || soliditySignature(m)\n selectors[m] = soliditySelector(signature)\n }\n return selectors\n }\n\n getAbiMethods () {\n let methods = {}\n this.abi.filter(def => def.type === 'function')\n .map(m => {\n let sig = m[ABI_SIGNATURE] || abiSignatureData(m)\n sig.name = m.name\n methods[sig.method] = sig\n })\n return methods\n }\n\n parseTxLogs (logs, abi) {\n return this.decodeLogs(logs, abi).map(event => {\n this.addEventAddresses(event)\n event.abi = removeAbiSignatureData(event.abi)\n return event\n })\n }\n\n addEventAddresses (event) {\n const { abi, args } = event\n let _addresses = event._addresses || []\n if (abi && args) {\n let inputs = abi.inputs || []\n inputs.forEach((v, i) => {\n if (v.type === 'address') {\n _addresses.push(args[i])\n }\n if (v.type === 'address[]') {\n let value = args[i] || []\n if (Array.isArray(value)) { // temp fix to undecoded events\n value.forEach(v => _addresses.push(v))\n } else {\n let i = 0\n while (2 + (i + 1) * 40 <= value.length) {\n _addresses.push('0x' + value.slice(2 + i * 40, 2 + (i + 1) * 40))\n i++\n }\n }\n }\n })\n event._addresses = [...new Set(_addresses)]\n }\n return event\n }\n\n decodeLogs (logs, abi) {\n abi = abi || this.abi\n const eventDecoder = EventDecoder(abi, this.log)\n if (!this.nativeContracts || !this.nativeContractsEvents) {\n throw new Error(`Native contracts decoder is missing, check the value of netId:${this.netId}`)\n }\n const { isNativeContract } = this.nativeContracts\n const { nativeContractsEvents } = this\n return logs.map(log => {\n const { address } = log\n const decoder = (isNativeContract(address)) ? nativeContractsEvents.getEventDecoder(log) : eventDecoder\n return decoder.decodeLog(log)\n })\n }\n\n makeContract (address, abi) {\n abi = abi || this.abi\n let { nod3 } = this\n return Contract(abi, { address, nod3 })\n }\n\n async call (method, contract, params = [], options = {}) {\n try {\n const res = await contract.call(method, params, options)\n return res\n } catch (err) {\n this.log.warn(`Method ${method} call ${err}`)\n return null\n }\n }\n\n async getTokenData (contract, { methods } = {}) {\n methods = methods || ['name', 'symbol', 'decimals', 'totalSupply']\n let result = await Promise.all(\n methods.map(m =>\n this.call(m, contract)\n .then(res => res)\n .catch(err => this.log.debug(`[${contract.address}] Error executing ${m} Error: ${err}`)))\n )\n return result.reduce((v, a, i) => {\n let name = methods[i]\n v[name] = a\n return v\n }, {})\n }\n\n getMethodsBySelectors (txInputData) {\n let methods = this.getMethodsSelectors()\n return Object.keys(methods)\n .filter(method => hasMethodSelector(txInputData, methods[method]) === true)\n }\n\n async getContractInfo (txInputData, contract) {\n let { interfaces, methods } = await this.getContractImplementedInterfaces(txInputData, contract)\n\n interfaces = mapInterfacesToERCs(interfaces)\n return { methods, interfaces }\n }\n\n async getEIP1967Info (contractAddress) {\n const { isUpgradeable, impContractAddress } = await this.isERC1967(contractAddress)\n if (isUpgradeable) {\n // manual check required\n const proxyContractBytecode = await this.getContractCodeFromNode(impContractAddress)\n const methods = this.getMethodsBySelectors(proxyContractBytecode)\n let interfaces = this.getInterfacesByMethods(methods)\n\n interfaces = mapInterfacesToERCs(interfaces)\n return { methods, interfaces: [...interfaces, 'ERC1967'] }\n }\n return {methods: [], interfaces: []}\n }\n\n async getContractImplementedInterfaces (txInputData, contract) {\n let methods = this.getMethodsBySelectors(txInputData)\n let isErc165 = false\n // skip non-erc165 contracts\n if (includesAll(methods, ['supportsInterface(bytes4)'])) {\n isErc165 = await this.implementsErc165(contract)\n }\n let interfaces\n if (isErc165) {\n interfaces = await this.getInterfacesERC165(contract)\n } else {\n interfaces = this.getInterfacesByMethods(methods)\n }\n\n return { methods, interfaces }\n }\n\n async isERC1967 (contractAddress) {\n // check For ERC1967\n // https://eips.ethereum.org/EIPS/eip-1967\n // 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc storage address where the implementation address is stored\n const storedValue = await this.nod3.eth.getStorageAt(contractAddress, '0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc')\n const isUpgradeable = storedValue !== '0x0'\n if (isUpgradeable) {\n const impContractAddress = `0x${storedValue.slice(-40)}` // extract contract address\n return { isUpgradeable, impContractAddress }\n } else {\n return { isUpgradeable, impContractAddress: storedValue }\n }\n }\n\n async getContractCodeFromNode (contractAddress) {\n return this.nod3.eth.getContractCodeAt(contractAddress)\n }\n\n async getInterfacesERC165 (contract) {\n let ifaces = {}\n let keys = Object.keys(interfacesIds)\n for (let i of keys) {\n ifaces[i] = await this.supportsInterface(contract, interfacesIds[i].id)\n }\n return ifaces\n }\n\n getInterfacesByMethods (methods, isErc165) {\n return Object.keys(interfacesIds)\n .map(i => {\n return [i, includesAll(methods, interfacesIds[i].methods)]\n })\n .reduce((obj, value) => {\n obj[value[0]] = value[1]\n return obj\n }, {})\n }\n\n async supportsInterface (contract, interfaceId) {\n // fixed gas to prevent infinite loops\n let options = { gas: '0x7530' }\n let res = await this.call('supportsInterface', contract, [interfaceId], options)\n return res\n }\n\n async implementsErc165 (contract) {\n try {\n let first = await this.supportsInterface(contract, interfacesIds.ERC165.id)\n if (first === true) {\n let second = await this.supportsInterface(contract, '0xffffffff')\n return !(second === true || second === null)\n }\n return false\n } catch (err) {\n return Promise.reject(err)\n }\n }\n}\n\nexport default ContractParser\n"],"mappings":"6HAAA,IAAAA,cAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,uBAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,gBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,SAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,aAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,IAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AACA,IAAAQ,MAAA,GAAAR,OAAA,YAMgB,SAAAD,uBAAAU,GAAA,UAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;;;;;;;;AAEhB,SAASG,mBAAmBA,CAAEC,UAAU,EAAE;EACxC,OAAOC,MAAM,CAACC,IAAI,CAACF,UAAU,CAAC;EAC3BG,MAAM,CAAC,CAAAC,CAAC,KAAIJ,UAAU,CAACI,CAAC,CAAC,KAAK,IAAI,CAAC;EACnCC,GAAG,CAAC,CAAAC,CAAC,KAAIC,0BAAmB,CAACD,CAAC,CAAC,IAAIA,CAAC,CAAC;AAC1C;;AAEA,SAASE,iBAAiBA,CAAEC,WAAW,EAAEC,QAAQ,EAAE;EACjD,OAAOA,QAAQ,IAAID,WAAW,IAAIA,WAAW,CAACE,QAAQ,CAACD,QAAQ,CAAC;AAClE;;AAEO,MAAME,cAAc,CAAC;EAC1BC,WAAWA,CAAE,EAAEC,GAAG,EAAEC,GAAG,EAAEC,UAAU,EAAEC,IAAI,EAAEC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;IAC/DF,UAAU,GAAGA,UAAU,IAAI,CAAC,CAAC;IAC7B,MAAM,EAAEG,GAAG,CAAC,CAAC,GAAGH,UAAU;IAC1B,IAAI,CAACI,KAAK,GAAID,GAAG,GAAIA,GAAG,CAACE,EAAE,GAAGC,SAAS;IACvC,IAAI,CAACR,GAAG,GAAG,IAAAS,aAAM,EAACT,GAAG,IAAIU,YAAU,CAAC;IACpC,IAAI,CAACT,GAAG,GAAGA,GAAG,IAAIU,OAAO;IACzB,IAAI,CAACR,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACS,eAAe,GAAG,IAAAC,wBAAe,EAACX,UAAU,CAAC;IAClD,IAAI,IAAI,CAACI,KAAK,EAAE;MACd,IAAIQ,cAAc,GAAGC,yBAAkB,CAAC,IAAI,CAACT,KAAK,CAAC;MACnD,IAAI,CAACU,qBAAqB,GAAG,IAAAC,+BAAsB,EAAC,EAAEH,cAAc,EAAEV,aAAa,CAAC,CAAC,CAAC;IACxF;EACF;;EAEAc,OAAOA,CAAEf,IAAI,EAAE;IACb,IAAI,CAACA,IAAI,GAAGA,IAAI;EAClB;;EAEAgB,wBAAwBA,CAAEC,IAAI,EAAE;IAC9B,MAAM,EAAER,eAAe,CAAC,CAAC,GAAG,IAAI;IAChC,IAAIA,eAAe,EAAE;MACnB,OAAOA,eAAe,CAACO,wBAAwB,CAACC,IAAI,CAAC;IACvD;EACF;;EAEAX,MAAMA,CAAET,GAAG,EAAE;IACX,IAAI,CAACA,GAAG,GAAG,IAAAS,aAAM,EAACT,GAAG,CAAC;EACxB;;EAEAqB,mBAAmBA,CAAA,EAAI;IACrB,IAAIC,SAAS,GAAG,CAAC,CAAC;IAClB,IAAIC,OAAO,GAAG,IAAI,CAACC,aAAa,CAAC,CAAC;IAClC,KAAK,IAAIC,CAAC,IAAIF,OAAO,EAAE;MACrB,IAAIG,MAAM,GAAGH,OAAO,CAACE,CAAC,CAAC;MACvB,IAAIE,SAAS,GAAGD,MAAM,CAACC,SAAS,IAAI,IAAAC,wBAAiB,EAACH,CAAC,CAAC;MACxDH,SAAS,CAACG,CAAC,CAAC,GAAG,IAAAI,uBAAgB,EAACF,SAAS,CAAC;IAC5C;IACA,OAAOL,SAAS;EAClB;;EAEAE,aAAaA,CAAA,EAAI;IACf,IAAID,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,CAACvB,GAAG,CAACX,MAAM,CAAC,CAAAyC,GAAG,KAAIA,GAAG,CAACC,IAAI,KAAK,UAAU,CAAC;IAC5CxC,GAAG,CAAC,CAAAkC,CAAC,KAAI;MACR,IAAIO,GAAG,GAAGP,CAAC,CAACQ,oBAAa,CAAC,IAAI,IAAAC,uBAAgB,EAACT,CAAC,CAAC;MACjDO,GAAG,CAACZ,IAAI,GAAGK,CAAC,CAACL,IAAI;MACjBG,OAAO,CAACS,GAAG,CAACN,MAAM,CAAC,GAAGM,GAAG;IAC3B,CAAC,CAAC;IACJ,OAAOT,OAAO;EAChB;;EAEAY,WAAWA,CAAEC,IAAI,EAAEpC,GAAG,EAAE;IACtB,OAAO,IAAI,CAACqC,UAAU,CAACD,IAAI,EAAEpC,GAAG,CAAC,CAACT,GAAG,CAAC,CAAA+C,KAAK,KAAI;MAC7C,IAAI,CAACC,iBAAiB,CAACD,KAAK,CAAC;MAC7BA,KAAK,CAACtC,GAAG,GAAG,IAAAwC,6BAAsB,EAACF,KAAK,CAACtC,GAAG,CAAC;MAC7C,OAAOsC,KAAK;IACd,CAAC,CAAC;EACJ;;EAEAC,iBAAiBA,CAAED,KAAK,EAAE;IACxB,MAAM,EAAEtC,GAAG,EAAEyC,IAAI,CAAC,CAAC,GAAGH,KAAK;IAC3B,IAAII,UAAU,GAAGJ,KAAK,CAACI,UAAU,IAAI,EAAE;IACvC,IAAI1C,GAAG,IAAIyC,IAAI,EAAE;MACf,IAAIE,MAAM,GAAG3C,GAAG,CAAC2C,MAAM,IAAI,EAAE;MAC7BA,MAAM,CAACC,OAAO,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;QACvB,IAAID,CAAC,CAACd,IAAI,KAAK,SAAS,EAAE;UACxBW,UAAU,CAACK,IAAI,CAACN,IAAI,CAACK,CAAC,CAAC,CAAC;QAC1B;QACA,IAAID,CAAC,CAACd,IAAI,KAAK,WAAW,EAAE;UAC1B,IAAIiB,KAAK,GAAGP,IAAI,CAACK,CAAC,CAAC,IAAI,EAAE;UACzB,IAAIG,KAAK,CAACC,OAAO,CAACF,KAAK,CAAC,EAAE,CAAE;YAC1BA,KAAK,CAACJ,OAAO,CAAC,CAAAC,CAAC,KAAIH,UAAU,CAACK,IAAI,CAACF,CAAC,CAAC,CAAC;UACxC,CAAC,MAAM;YACL,IAAIC,CAAC,GAAG,CAAC;YACT,OAAO,CAAC,GAAG,CAACA,CAAC,GAAG,CAAC,IAAI,EAAE,IAAIE,KAAK,CAACG,MAAM,EAAE;cACvCT,UAAU,CAACK,IAAI,CAAC,IAAI,GAAGC,KAAK,CAACI,KAAK,CAAC,CAAC,GAAGN,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAACA,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;cACjEA,CAAC,EAAE;YACL;UACF;QACF;MACF,CAAC,CAAC;MACFR,KAAK,CAACI,UAAU,GAAG,CAAC,GAAG,IAAIW,GAAG,CAACX,UAAU,CAAC,CAAC;IAC7C;IACA,OAAOJ,KAAK;EACd;;EAEAD,UAAUA,CAAED,IAAI,EAAEpC,GAAG,EAAE;IACrBA,GAAG,GAAGA,GAAG,IAAI,IAAI,CAACA,GAAG;IACrB,MAAMsD,YAAY,GAAG,IAAAC,qBAAY,EAACvD,GAAG,EAAE,IAAI,CAACC,GAAG,CAAC;IAChD,IAAI,CAAC,IAAI,CAACW,eAAe,IAAI,CAAC,IAAI,CAACI,qBAAqB,EAAE;MACxD,MAAM,IAAIwC,KAAK,CAAE,iEAAgE,IAAI,CAAClD,KAAM,EAAC,CAAC;IAChG;IACA,MAAM,EAAEmD,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAC7C,eAAe;IACjD,MAAM,EAAEI,qBAAqB,CAAC,CAAC,GAAG,IAAI;IACtC,OAAOoB,IAAI,CAAC7C,GAAG,CAAC,CAAAU,GAAG,KAAI;MACrB,MAAM,EAAEyD,OAAO,CAAC,CAAC,GAAGzD,GAAG;MACvB,MAAM0D,OAAO,GAAIF,gBAAgB,CAACC,OAAO,CAAC,GAAI1C,qBAAqB,CAAC4C,eAAe,CAAC3D,GAAG,CAAC,GAAGqD,YAAY;MACvG,OAAOK,OAAO,CAACE,SAAS,CAAC5D,GAAG,CAAC;IAC/B,CAAC,CAAC;EACJ;;EAEA6D,YAAYA,CAAEJ,OAAO,EAAE1D,GAAG,EAAE;IAC1BA,GAAG,GAAGA,GAAG,IAAI,IAAI,CAACA,GAAG;IACrB,IAAI,EAAEG,IAAI,CAAC,CAAC,GAAG,IAAI;IACnB,OAAO,IAAA4D,iBAAQ,EAAC/D,GAAG,EAAE,EAAE0D,OAAO,EAAEvD,IAAI,CAAC,CAAC,CAAC;EACzC;;EAEA,MAAM6D,IAAIA,CAAEtC,MAAM,EAAEuC,QAAQ,EAAEC,MAAM,GAAG,EAAE,EAAEC,OAAO,GAAG,CAAC,CAAC,EAAE;IACvD,IAAI;MACF,MAAMC,GAAG,GAAG,MAAMH,QAAQ,CAACD,IAAI,CAACtC,MAAM,EAAEwC,MAAM,EAAEC,OAAO,CAAC;MACxD,OAAOC,GAAG;IACZ,CAAC,CAAC,OAAOC,GAAG,EAAE;MACZ,IAAI,CAACpE,GAAG,CAACqE,IAAI,CAAE,UAAS5C,MAAO,SAAQ2C,GAAI,EAAC,CAAC;MAC7C,OAAO,IAAI;IACb;EACF;;EAEA,MAAME,YAAYA,CAAEN,QAAQ,EAAE,EAAE1C,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;IAC9CA,OAAO,GAAGA,OAAO,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC;IAClE,IAAIiD,MAAM,GAAG,MAAMC,OAAO,CAACC,GAAG;MAC5BnD,OAAO,CAAChC,GAAG,CAAC,CAAAkC,CAAC;MACX,IAAI,CAACuC,IAAI,CAACvC,CAAC,EAAEwC,QAAQ,CAAC;MACnBU,IAAI,CAAC,CAAAP,GAAG,KAAIA,GAAG,CAAC;MAChBQ,KAAK,CAAC,CAAAP,GAAG,KAAI,IAAI,CAACpE,GAAG,CAAC4E,KAAK,CAAE,IAAGZ,QAAQ,CAACP,OAAQ,qBAAoBjC,CAAE,YAAW4C,GAAI,EAAC,CAAC,CAAC;IAChG,CAAC;IACD,OAAOG,MAAM,CAACM,MAAM,CAAC,CAACjC,CAAC,EAAEkC,CAAC,EAAEjC,CAAC,KAAK;MAChC,IAAI1B,IAAI,GAAGG,OAAO,CAACuB,CAAC,CAAC;MACrBD,CAAC,CAACzB,IAAI,CAAC,GAAG2D,CAAC;MACX,OAAOlC,CAAC;IACV,CAAC,EAAE,CAAC,CAAC,CAAC;EACR;;EAEAmC,qBAAqBA,CAAErF,WAAW,EAAE;IAClC,IAAI4B,OAAO,GAAG,IAAI,CAACF,mBAAmB,CAAC,CAAC;IACxC,OAAOlC,MAAM,CAACC,IAAI,CAACmC,OAAO,CAAC;IACxBlC,MAAM,CAAC,CAAAqC,MAAM,KAAIhC,iBAAiB,CAACC,WAAW,EAAE4B,OAAO,CAACG,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC;EAC/E;;EAEA,MAAMuD,eAAeA,CAAEtF,WAAW,EAAEsE,QAAQ,EAAE;IAC5C,IAAI,EAAE/E,UAAU,EAAEqC,OAAO,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC2D,gCAAgC,CAACvF,WAAW,EAAEsE,QAAQ,CAAC;;IAEhG/E,UAAU,GAAGD,mBAAmB,CAACC,UAAU,CAAC;IAC5C,OAAO,EAAEqC,OAAO,EAAErC,UAAU,CAAC,CAAC;EAChC;;EAEA,MAAMiG,cAAcA,CAAEC,eAAe,EAAE;IACrC,MAAM,EAAEC,aAAa,EAAEC,kBAAkB,CAAC,CAAC,GAAG,MAAM,IAAI,CAACC,SAAS,CAACH,eAAe,CAAC;IACnF,IAAIC,aAAa,EAAE;MACjB;MACA,MAAMG,qBAAqB,GAAG,MAAM,IAAI,CAACC,uBAAuB,CAACH,kBAAkB,CAAC;MACpF,MAAM/D,OAAO,GAAG,IAAI,CAACyD,qBAAqB,CAACQ,qBAAqB,CAAC;MACjE,IAAItG,UAAU,GAAG,IAAI,CAACwG,sBAAsB,CAACnE,OAAO,CAAC;;MAErDrC,UAAU,GAAGD,mBAAmB,CAACC,UAAU,CAAC;MAC5C,OAAO,EAAEqC,OAAO,EAAErC,UAAU,EAAE,CAAC,GAAGA,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;IAC5D;IACA,OAAO,EAACqC,OAAO,EAAE,EAAE,EAAErC,UAAU,EAAE,EAAE,EAAC;EACtC;;EAEA,MAAMgG,gCAAgCA,CAAEvF,WAAW,EAAEsE,QAAQ,EAAE;IAC7D,IAAI1C,OAAO,GAAG,IAAI,CAACyD,qBAAqB,CAACrF,WAAW,CAAC;IACrD,IAAIgG,QAAQ,GAAG,KAAK;IACpB;IACA,IAAI,IAAAC,qBAAW,EAACrE,OAAO,EAAE,CAAC,2BAA2B,CAAC,CAAC,EAAE;MACvDoE,QAAQ,GAAG,MAAM,IAAI,CAACE,gBAAgB,CAAC5B,QAAQ,CAAC;IAClD;IACA,IAAI/E,UAAU;IACd,IAAIyG,QAAQ,EAAE;MACZzG,UAAU,GAAG,MAAM,IAAI,CAAC4G,mBAAmB,CAAC7B,QAAQ,CAAC;IACvD,CAAC,MAAM;MACL/E,UAAU,GAAG,IAAI,CAACwG,sBAAsB,CAACnE,OAAO,CAAC;IACnD;;IAEA,OAAO,EAAEA,OAAO,EAAErC,UAAU,CAAC,CAAC;EAChC;;EAEA,MAAMqG,SAASA,CAAEH,eAAe,EAAE;IAChC;IACA;IACA;IACA,MAAMW,WAAW,GAAG,MAAM,IAAI,CAAC5F,IAAI,CAAC6F,GAAG,CAACC,YAAY,CAACb,eAAe,EAAE,oEAAoE,CAAC;IAC3I,MAAMC,aAAa,GAAGU,WAAW,KAAK,KAAK;IAC3C,IAAIV,aAAa,EAAE;MACjB,MAAMC,kBAAkB,GAAI,KAAIS,WAAW,CAAC3C,KAAK,CAAC,CAAC,EAAE,CAAE,EAAC,EAAC;MACzD,OAAO,EAAEiC,aAAa,EAAEC,kBAAkB,CAAC,CAAC;IAC9C,CAAC,MAAM;MACL,OAAO,EAAED,aAAa,EAAEC,kBAAkB,EAAES,WAAW,CAAC,CAAC;IAC3D;EACF;;EAEA,MAAMN,uBAAuBA,CAAEL,eAAe,EAAE;IAC9C,OAAO,IAAI,CAACjF,IAAI,CAAC6F,GAAG,CAACE,iBAAiB,CAACd,eAAe,CAAC;EACzD;;EAEA,MAAMU,mBAAmBA,CAAE7B,QAAQ,EAAE;IACnC,IAAIkC,MAAM,GAAG,CAAC,CAAC;IACf,IAAI/G,IAAI,GAAGD,MAAM,CAACC,IAAI,CAACgH,sBAAa,CAAC;IACrC,KAAK,IAAItD,CAAC,IAAI1D,IAAI,EAAE;MAClB+G,MAAM,CAACrD,CAAC,CAAC,GAAG,MAAM,IAAI,CAACuD,iBAAiB,CAACpC,QAAQ,EAAEmC,sBAAa,CAACtD,CAAC,CAAC,CAACvC,EAAE,CAAC;IACzE;IACA,OAAO4F,MAAM;EACf;;EAEAT,sBAAsBA,CAAEnE,OAAO,EAAEoE,QAAQ,EAAE;IACzC,OAAOxG,MAAM,CAACC,IAAI,CAACgH,sBAAa,CAAC;IAC9B7G,GAAG,CAAC,CAAAuD,CAAC,KAAI;MACR,OAAO,CAACA,CAAC,EAAE,IAAA8C,qBAAW,EAACrE,OAAO,EAAE6E,sBAAa,CAACtD,CAAC,CAAC,CAACvB,OAAO,CAAC,CAAC;IAC5D,CAAC,CAAC;IACDuD,MAAM,CAAC,CAAChG,GAAG,EAAEkE,KAAK,KAAK;MACtBlE,GAAG,CAACkE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAGA,KAAK,CAAC,CAAC,CAAC;MACxB,OAAOlE,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC,CAAC;EACV;;EAEA,MAAMuH,iBAAiBA,CAAEpC,QAAQ,EAAEqC,WAAW,EAAE;IAC9C;IACA,IAAInC,OAAO,GAAG,EAAEoC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC/B,IAAInC,GAAG,GAAG,MAAM,IAAI,CAACJ,IAAI,CAAC,mBAAmB,EAAEC,QAAQ,EAAE,CAACqC,WAAW,CAAC,EAAEnC,OAAO,CAAC;IAChF,OAAOC,GAAG;EACZ;;EAEA,MAAMyB,gBAAgBA,CAAE5B,QAAQ,EAAE;IAChC,IAAI;MACF,IAAIuC,KAAK,GAAG,MAAM,IAAI,CAACH,iBAAiB,CAACpC,QAAQ,EAAEmC,sBAAa,CAACK,MAAM,CAAClG,EAAE,CAAC;MAC3E,IAAIiG,KAAK,KAAK,IAAI,EAAE;QAClB,IAAIE,MAAM,GAAG,MAAM,IAAI,CAACL,iBAAiB,CAACpC,QAAQ,EAAE,YAAY,CAAC;QACjE,OAAO,EAAEyC,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAK,IAAI,CAAC;MAC9C;MACA,OAAO,KAAK;IACd,CAAC,CAAC,OAAOrC,GAAG,EAAE;MACZ,OAAOI,OAAO,CAACkC,MAAM,CAACtC,GAAG,CAAC;IAC5B;EACF;AACF,CAACuC,OAAA,CAAA9G,cAAA,GAAAA,cAAA,KAAA+G,QAAA,GAAAD,OAAA,CAAA5H,OAAA;;AAEcc,cAAc"} \ No newline at end of file diff --git a/dist/lib/EventDecoder.js b/dist/lib/EventDecoder.js index dcce5aa..add61d1 100755 --- a/dist/lib/EventDecoder.js +++ b/dist/lib/EventDecoder.js @@ -5,10 +5,10 @@ var _abi = require("@ethersproject/abi"); function EventDecoder(abi, logger) { const contractInterface = new _abi.Interface((0, _utils.addSignatureDataToAbi)(abi)); - const getEventAbi = topics => { + const getEventAbi = (topics) => { topics = [...topics]; const sigHash = (0, _rskUtils.remove0x)(topics.shift()); - let events = abi.filter(i => { + let events = abi.filter((i) => { let { indexed, signature } = (0, _utils.getSignatureDataFromAbi)(i); return signature === sigHash && indexed === topics.length; }); @@ -29,7 +29,7 @@ function EventDecoder(abi, logger) { const encodeElement = (type, decoded) => { if (Array.isArray(decoded)) { - decoded = decoded.map(d => formatElement(type, d)); + decoded = decoded.map((d) => formatElement(type, d)); if (decoded.length === 1) decoded = decoded.join(); } else { decoded = formatElement(type, decoded); @@ -37,7 +37,7 @@ function EventDecoder(abi, logger) { return decoded; }; - const decodeLog = log => { + const decodeLog = (log) => { try { const { eventFragment, name, args, topic } = contractInterface.parseLog(log); @@ -47,8 +47,8 @@ function EventDecoder(abi, logger) { for (const i in eventFragment.inputs) { parsedArgs.push( - encodeElement(eventFragment.inputs[i].type, args[i])); - + encodeElement(eventFragment.inputs[i].type, args[i]) + ); } return Object.assign({}, log, { @@ -56,8 +56,8 @@ function EventDecoder(abi, logger) { event: name, address, args: parsedArgs, - abi: JSON.parse(eventFragment.format('json')) }); - + abi: JSON.parse(eventFragment.format('json')) + }); } catch (e) { logger.error(e); return log; @@ -65,6 +65,7 @@ function EventDecoder(abi, logger) { }; return Object.freeze({ decodeLog, getEventAbi }); -}var _default = +}var _default = exports.default = -EventDecoder;exports.default = _default; \ No newline at end of file +EventDecoder; +//# sourceMappingURL=EventDecoder.js.map \ No newline at end of file diff --git a/dist/lib/EventDecoder.js.map b/dist/lib/EventDecoder.js.map new file mode 100644 index 0000000..8b3e596 --- /dev/null +++ b/dist/lib/EventDecoder.js.map @@ -0,0 +1 @@ +{"version":3,"file":"EventDecoder.js","names":["_utils","require","_rskUtils","_abi","EventDecoder","abi","logger","contractInterface","Interface","addSignatureDataToAbi","getEventAbi","topics","sigHash","remove0x","shift","events","filter","i","indexed","signature","getSignatureDataFromAbi","length","Error","eventABI","formatElement","type","decoded","_isIndexed","hash","_isBigNumber","toHexString","res","add0x","Buffer","isBuffer","bufferToHex","toString","toLowerCase","encodeElement","Array","isArray","map","d","join","decodeLog","log","eventFragment","name","args","topic","parseLog","address","parsedArgs","inputs","push","Object","assign","event","JSON","parse","format","e","error","freeze","_default","exports","default"],"sources":["../../src/lib/EventDecoder.js"],"sourcesContent":["import { addSignatureDataToAbi, getSignatureDataFromAbi } from './utils'\nimport { remove0x, add0x, bufferToHex } from '@rsksmart/rsk-utils'\nimport { Interface } from '@ethersproject/abi'\n\nfunction EventDecoder (abi, logger) {\n const contractInterface = new Interface(addSignatureDataToAbi(abi))\n\n const getEventAbi = topics => {\n topics = [...topics]\n const sigHash = remove0x(topics.shift())\n let events = abi.filter(i => {\n let { indexed, signature } = getSignatureDataFromAbi(i)\n return signature === sigHash && indexed === topics.length\n })\n if (events.length > 1) throw new Error('Duplicate events in ABI')\n const eventABI = events[0]\n return { eventABI, topics }\n }\n\n const formatElement = (type, decoded) => {\n if (decoded._isIndexed) return { _isIndexed: true, hash: decoded.hash }\n if (decoded._isBigNumber) {\n return decoded.toHexString()\n }\n const res = add0x(Buffer.isBuffer(decoded) ? bufferToHex(decoded) : decoded.toString(16))\n if (type === 'address' || type === 'address[]') return res.toLowerCase()\n return res\n }\n\n const encodeElement = (type, decoded) => {\n if (Array.isArray(decoded)) {\n decoded = decoded.map(d => formatElement(type, d))\n if (decoded.length === 1) decoded = decoded.join()\n } else {\n decoded = formatElement(type, decoded)\n }\n return decoded\n }\n\n const decodeLog = log => {\n try {\n const { eventFragment, name, args, topic } = contractInterface.parseLog(log)\n\n const { address } = log\n\n const parsedArgs = []\n\n for (const i in eventFragment.inputs) {\n parsedArgs.push(\n encodeElement(eventFragment.inputs[i].type, args[i])\n )\n }\n\n return Object.assign({}, log, {\n signature: remove0x(topic),\n event: name,\n address,\n args: parsedArgs,\n abi: JSON.parse(eventFragment.format('json'))\n })\n } catch (e) {\n logger.error(e)\n return log\n }\n }\n\n return Object.freeze({ decodeLog, getEventAbi })\n}\n\nexport default EventDecoder\n"],"mappings":"oGAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;;AAEA,SAASG,YAAYA,CAAEC,GAAG,EAAEC,MAAM,EAAE;EAClC,MAAMC,iBAAiB,GAAG,IAAIC,cAAS,CAAC,IAAAC,4BAAqB,EAACJ,GAAG,CAAC,CAAC;;EAEnE,MAAMK,WAAW,GAAGA,CAAAC,MAAM,KAAI;IAC5BA,MAAM,GAAG,CAAC,GAAGA,MAAM,CAAC;IACpB,MAAMC,OAAO,GAAG,IAAAC,kBAAQ,EAACF,MAAM,CAACG,KAAK,CAAC,CAAC,CAAC;IACxC,IAAIC,MAAM,GAAGV,GAAG,CAACW,MAAM,CAAC,CAAAC,CAAC,KAAI;MAC3B,IAAI,EAAEC,OAAO,EAAEC,SAAS,CAAC,CAAC,GAAG,IAAAC,8BAAuB,EAACH,CAAC,CAAC;MACvD,OAAOE,SAAS,KAAKP,OAAO,IAAIM,OAAO,KAAKP,MAAM,CAACU,MAAM;IAC3D,CAAC,CAAC;IACF,IAAIN,MAAM,CAACM,MAAM,GAAG,CAAC,EAAE,MAAM,IAAIC,KAAK,CAAC,yBAAyB,CAAC;IACjE,MAAMC,QAAQ,GAAGR,MAAM,CAAC,CAAC,CAAC;IAC1B,OAAO,EAAEQ,QAAQ,EAAEZ,MAAM,CAAC,CAAC;EAC7B,CAAC;;EAED,MAAMa,aAAa,GAAGA,CAACC,IAAI,EAAEC,OAAO,KAAK;IACvC,IAAIA,OAAO,CAACC,UAAU,EAAE,OAAO,EAAEA,UAAU,EAAE,IAAI,EAAEC,IAAI,EAAEF,OAAO,CAACE,IAAI,CAAC,CAAC;IACvE,IAAIF,OAAO,CAACG,YAAY,EAAE;MACxB,OAAOH,OAAO,CAACI,WAAW,CAAC,CAAC;IAC9B;IACA,MAAMC,GAAG,GAAG,IAAAC,eAAK,EAACC,MAAM,CAACC,QAAQ,CAACR,OAAO,CAAC,GAAG,IAAAS,qBAAW,EAACT,OAAO,CAAC,GAAGA,OAAO,CAACU,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzF,IAAIX,IAAI,KAAK,SAAS,IAAIA,IAAI,KAAK,WAAW,EAAE,OAAOM,GAAG,CAACM,WAAW,CAAC,CAAC;IACxE,OAAON,GAAG;EACZ,CAAC;;EAED,MAAMO,aAAa,GAAGA,CAACb,IAAI,EAAEC,OAAO,KAAK;IACvC,IAAIa,KAAK,CAACC,OAAO,CAACd,OAAO,CAAC,EAAE;MAC1BA,OAAO,GAAGA,OAAO,CAACe,GAAG,CAAC,CAAAC,CAAC,KAAIlB,aAAa,CAACC,IAAI,EAAEiB,CAAC,CAAC,CAAC;MAClD,IAAIhB,OAAO,CAACL,MAAM,KAAK,CAAC,EAAEK,OAAO,GAAGA,OAAO,CAACiB,IAAI,CAAC,CAAC;IACpD,CAAC,MAAM;MACLjB,OAAO,GAAGF,aAAa,CAACC,IAAI,EAAEC,OAAO,CAAC;IACxC;IACA,OAAOA,OAAO;EAChB,CAAC;;EAED,MAAMkB,SAAS,GAAGA,CAAAC,GAAG,KAAI;IACvB,IAAI;MACF,MAAM,EAAEC,aAAa,EAAEC,IAAI,EAAEC,IAAI,EAAEC,KAAK,CAAC,CAAC,GAAG1C,iBAAiB,CAAC2C,QAAQ,CAACL,GAAG,CAAC;;MAE5E,MAAM,EAAEM,OAAO,CAAC,CAAC,GAAGN,GAAG;;MAEvB,MAAMO,UAAU,GAAG,EAAE;;MAErB,KAAK,MAAMnC,CAAC,IAAI6B,aAAa,CAACO,MAAM,EAAE;QACpCD,UAAU,CAACE,IAAI;UACbhB,aAAa,CAACQ,aAAa,CAACO,MAAM,CAACpC,CAAC,CAAC,CAACQ,IAAI,EAAEuB,IAAI,CAAC/B,CAAC,CAAC;QACrD,CAAC;MACH;;MAEA,OAAOsC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAEX,GAAG,EAAE;QAC5B1B,SAAS,EAAE,IAAAN,kBAAQ,EAACoC,KAAK,CAAC;QAC1BQ,KAAK,EAAEV,IAAI;QACXI,OAAO;QACPH,IAAI,EAAEI,UAAU;QAChB/C,GAAG,EAAEqD,IAAI,CAACC,KAAK,CAACb,aAAa,CAACc,MAAM,CAAC,MAAM,CAAC;MAC9C,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOC,CAAC,EAAE;MACVvD,MAAM,CAACwD,KAAK,CAACD,CAAC,CAAC;MACf,OAAOhB,GAAG;IACZ;EACF,CAAC;;EAED,OAAOU,MAAM,CAACQ,MAAM,CAAC,EAAEnB,SAAS,EAAElC,WAAW,CAAC,CAAC,CAAC;AAClD,CAAC,IAAAsD,QAAA,GAAAC,OAAA,CAAAC,OAAA;;AAEc9D,YAAY"} \ No newline at end of file diff --git a/dist/lib/btcUtils.js b/dist/lib/btcUtils.js index bcc18f7..3d3eb99 100755 --- a/dist/lib/btcUtils.js +++ b/dist/lib/btcUtils.js @@ -1,23 +1,23 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.rskAddressFromBtcPublicKey = exports.compressPublic = exports.decompressPublic = exports.parsePublic = exports.pubToAddress = exports.h160toAddress = exports.h160 = exports.sha256 = void 0;var _crypto = _interopRequireDefault(require("crypto")); +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.sha256 = exports.rskAddressFromBtcPublicKey = exports.pubToAddress = exports.parsePublic = exports.h160toAddress = exports.h160 = exports.decompressPublic = exports.compressPublic = void 0;var _crypto = _interopRequireDefault(require("crypto")); var bs58 = _interopRequireWildcard(require("bs58")); var _rskUtils = require("@rsksmart/rsk-utils"); -var _secp256k = _interopRequireDefault(require("secp256k1"));function _getRequireWildcardCache() {if (typeof WeakMap !== "function") return null;var cache = new WeakMap();_getRequireWildcardCache = function () {return cache;};return cache;}function _interopRequireWildcard(obj) {if (obj && obj.__esModule) {return obj;}if (obj === null || typeof obj !== "object" && typeof obj !== "function") {return { default: obj };}var cache = _getRequireWildcardCache();if (cache && cache.has(obj)) {return cache.get(obj);}var newObj = {};var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var key in obj) {if (Object.prototype.hasOwnProperty.call(obj, key)) {var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;if (desc && (desc.get || desc.set)) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}newObj.default = obj;if (cache) {cache.set(obj, newObj);}return newObj;}function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} +var _secp256k = _interopRequireDefault(require("secp256k1"));function _getRequireWildcardCache(e) {if ("function" != typeof WeakMap) return null;var r = new WeakMap(),t = new WeakMap();return (_getRequireWildcardCache = function (e) {return e ? t : r;})(e);}function _interopRequireWildcard(e, r) {if (!r && e && e.__esModule) return e;if (null === e || "object" != typeof e && "function" != typeof e) return { default: e };var t = _getRequireWildcardCache(r);if (t && t.has(e)) return t.get(e);var n = { __proto__: null },a = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) {var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];}return n.default = e, t && t.set(e, n), n;}function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} const PREFIXES = { mainnet: { pubKeyHash: '00', - scriptHash: '05' }, - + scriptHash: '05' + }, testnet: { pubKeyHash: '6F', - scriptHash: 'C4' }, - + scriptHash: 'C4' + }, regtest: { pubKeyHash: '00', - scriptHash: '00' } }; - - -const getNetPrefix = netName => { + scriptHash: '00' + } +}; +const getNetPrefix = (netName) => { let prefixes = PREFIXES[netName]; if (!prefixes) throw new Error(`Unknown network ${netName}`); return prefixes; @@ -48,8 +48,9 @@ const parsePublic = (pub, compressed) => { return _secp256k.default.publicKeyConvert(pub, compressed); };exports.parsePublic = parsePublic; -const decompressPublic = compressed => parsePublic(compressed, false).toString('hex');exports.decompressPublic = decompressPublic; +const decompressPublic = (compressed) => parsePublic(compressed, false).toString('hex');exports.decompressPublic = decompressPublic; -const compressPublic = pub => parsePublic(pub, true).toString('hex');exports.compressPublic = compressPublic; +const compressPublic = (pub) => parsePublic(pub, true).toString('hex');exports.compressPublic = compressPublic; -const rskAddressFromBtcPublicKey = cpk => (0, _rskUtils.add0x)((0, _rskUtils.keccak256)(parsePublic(cpk, false).slice(1)).slice(-40));exports.rskAddressFromBtcPublicKey = rskAddressFromBtcPublicKey; \ No newline at end of file +const rskAddressFromBtcPublicKey = (cpk) => (0, _rskUtils.add0x)((0, _rskUtils.keccak256)(parsePublic(cpk, false).slice(1)).slice(-40));exports.rskAddressFromBtcPublicKey = rskAddressFromBtcPublicKey; +//# sourceMappingURL=btcUtils.js.map \ No newline at end of file diff --git a/dist/lib/btcUtils.js.map b/dist/lib/btcUtils.js.map new file mode 100644 index 0000000..8ec8567 --- /dev/null +++ b/dist/lib/btcUtils.js.map @@ -0,0 +1 @@ +{"version":3,"file":"btcUtils.js","names":["_crypto","_interopRequireDefault","require","bs58","_interopRequireWildcard","_rskUtils","_secp256k","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","PREFIXES","mainnet","pubKeyHash","scriptHash","testnet","regtest","getNetPrefix","netName","prefixes","Error","createHash","val","from","to","crypto","update","digest","sha256","remove0x","exports","h160","h160toAddress","hash160","network","prefixKey","prefix","Buffer","isBuffer","toString","check","slice","encode","pubToAddress","pub","parsePublic","compressed","secp256k1","publicKeyConvert","decompressPublic","compressPublic","rskAddressFromBtcPublicKey","cpk","add0x","keccak256"],"sources":["../../src/lib/btcUtils.js"],"sourcesContent":["import crypto from 'crypto'\nimport * as bs58 from 'bs58'\nimport { remove0x, add0x, keccak256 } from '@rsksmart/rsk-utils'\nimport secp256k1 from 'secp256k1'\n\nconst PREFIXES = {\n mainnet: {\n pubKeyHash: '00',\n scriptHash: '05'\n },\n testnet: {\n pubKeyHash: '6F',\n scriptHash: 'C4'\n },\n regtest: {\n pubKeyHash: '00',\n scriptHash: '00'\n }\n}\nconst getNetPrefix = netName => {\n let prefixes = PREFIXES[netName]\n if (!prefixes) throw new Error(`Unknown network ${netName}`)\n return prefixes\n}\n\nconst createHash = (a, val, from = 'hex', to = 'hex') => crypto.createHash(a).update(val, from).digest(to)\n\nexport const sha256 = (val, from, to) => createHash('sha256', remove0x(val), from, to)\n\nexport const h160 = (val, from, to) => createHash('ripemd160', remove0x(val), from, to)\n\nexport const h160toAddress = (hash160, { network, prefixKey }) => {\n network = network || 'mainnet'\n prefixKey = prefixKey || 'pubKeyHash'\n const prefix = getNetPrefix(network)[prefixKey]\n hash160 = (Buffer.isBuffer(hash160)) ? hash160.toString('hex') : remove0x(hash160)\n hash160 = `${prefix}${hash160}`\n let check = sha256(sha256(hash160)).slice(0, 8)\n return bs58.encode(Buffer.from(`${hash160}${check}`, 'hex'))\n}\n\nexport const pubToAddress = (pub, network) => {\n return h160toAddress(h160(sha256(remove0x(pub))), { network })\n}\n\nexport const parsePublic = (pub, compressed) => {\n pub = (!Buffer.isBuffer(pub)) ? Buffer.from(remove0x(pub), 'hex') : pub\n return secp256k1.publicKeyConvert(pub, compressed)\n}\n\nexport const decompressPublic = compressed => parsePublic(compressed, false).toString('hex')\n\nexport const compressPublic = pub => parsePublic(pub, true).toString('hex')\n\nexport const rskAddressFromBtcPublicKey = cpk => add0x(keccak256(parsePublic(cpk, false).slice(1)).slice(-40))\n"],"mappings":"gRAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAL,sBAAA,CAAAC,OAAA,eAAiC,SAAAK,yBAAAC,CAAA,4BAAAC,OAAA,kBAAAC,CAAA,OAAAD,OAAA,GAAAE,CAAA,OAAAF,OAAA,WAAAF,wBAAA,YAAAA,CAAAC,CAAA,UAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,IAAAF,CAAA,YAAAJ,wBAAAI,CAAA,EAAAE,CAAA,QAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,cAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,OAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,MAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,MAAAQ,CAAA,KAAAC,SAAA,SAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,UAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,QAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,SAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,UAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA,WAAAf,uBAAA2B,GAAA,UAAAA,GAAA,IAAAA,GAAA,CAAAhB,UAAA,GAAAgB,GAAA,KAAAf,OAAA,EAAAe,GAAA;;AAEjC,MAAMC,QAAQ,GAAG;EACfC,OAAO,EAAE;IACPC,UAAU,EAAE,IAAI;IAChBC,UAAU,EAAE;EACd,CAAC;EACDC,OAAO,EAAE;IACPF,UAAU,EAAE,IAAI;IAChBC,UAAU,EAAE;EACd,CAAC;EACDE,OAAO,EAAE;IACPH,UAAU,EAAE,IAAI;IAChBC,UAAU,EAAE;EACd;AACF,CAAC;AACD,MAAMG,YAAY,GAAGA,CAAAC,OAAO,KAAI;EAC9B,IAAIC,QAAQ,GAAGR,QAAQ,CAACO,OAAO,CAAC;EAChC,IAAI,CAACC,QAAQ,EAAE,MAAM,IAAIC,KAAK,CAAE,mBAAkBF,OAAQ,EAAC,CAAC;EAC5D,OAAOC,QAAQ;AACjB,CAAC;;AAED,MAAME,UAAU,GAAGA,CAACrB,CAAC,EAAEsB,GAAG,EAAEC,IAAI,GAAG,KAAK,EAAEC,EAAE,GAAG,KAAK,KAAKC,eAAM,CAACJ,UAAU,CAACrB,CAAC,CAAC,CAAC0B,MAAM,CAACJ,GAAG,EAAEC,IAAI,CAAC,CAACI,MAAM,CAACH,EAAE,CAAC;;AAEnG,MAAMI,MAAM,GAAGA,CAACN,GAAG,EAAEC,IAAI,EAAEC,EAAE,KAAKH,UAAU,CAAC,QAAQ,EAAE,IAAAQ,kBAAQ,EAACP,GAAG,CAAC,EAAEC,IAAI,EAAEC,EAAE,CAAC,CAAAM,OAAA,CAAAF,MAAA,GAAAA,MAAA;;AAE/E,MAAMG,IAAI,GAAGA,CAACT,GAAG,EAAEC,IAAI,EAAEC,EAAE,KAAKH,UAAU,CAAC,WAAW,EAAE,IAAAQ,kBAAQ,EAACP,GAAG,CAAC,EAAEC,IAAI,EAAEC,EAAE,CAAC,CAAAM,OAAA,CAAAC,IAAA,GAAAA,IAAA;;AAEhF,MAAMC,aAAa,GAAGA,CAACC,OAAO,EAAE,EAAEC,OAAO,EAAEC,SAAS,CAAC,CAAC,KAAK;EAChED,OAAO,GAAGA,OAAO,IAAI,SAAS;EAC9BC,SAAS,GAAGA,SAAS,IAAI,YAAY;EACrC,MAAMC,MAAM,GAAGnB,YAAY,CAACiB,OAAO,CAAC,CAACC,SAAS,CAAC;EAC/CF,OAAO,GAAII,MAAM,CAACC,QAAQ,CAACL,OAAO,CAAC,GAAIA,OAAO,CAACM,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAAV,kBAAQ,EAACI,OAAO,CAAC;EAClFA,OAAO,GAAI,GAAEG,MAAO,GAAEH,OAAQ,EAAC;EAC/B,IAAIO,KAAK,GAAGZ,MAAM,CAACA,MAAM,CAACK,OAAO,CAAC,CAAC,CAACQ,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;EAC/C,OAAOxD,IAAI,CAACyD,MAAM,CAACL,MAAM,CAACd,IAAI,CAAE,GAAEU,OAAQ,GAAEO,KAAM,EAAC,EAAE,KAAK,CAAC,CAAC;AAC9D,CAAC,CAAAV,OAAA,CAAAE,aAAA,GAAAA,aAAA;;AAEM,MAAMW,YAAY,GAAGA,CAACC,GAAG,EAAEV,OAAO,KAAK;EAC5C,OAAOF,aAAa,CAACD,IAAI,CAACH,MAAM,CAAC,IAAAC,kBAAQ,EAACe,GAAG,CAAC,CAAC,CAAC,EAAE,EAAEV,OAAO,CAAC,CAAC,CAAC;AAChE,CAAC,CAAAJ,OAAA,CAAAa,YAAA,GAAAA,YAAA;;AAEM,MAAME,WAAW,GAAGA,CAACD,GAAG,EAAEE,UAAU,KAAK;EAC9CF,GAAG,GAAI,CAACP,MAAM,CAACC,QAAQ,CAACM,GAAG,CAAC,GAAIP,MAAM,CAACd,IAAI,CAAC,IAAAM,kBAAQ,EAACe,GAAG,CAAC,EAAE,KAAK,CAAC,GAAGA,GAAG;EACvE,OAAOG,iBAAS,CAACC,gBAAgB,CAACJ,GAAG,EAAEE,UAAU,CAAC;AACpD,CAAC,CAAAhB,OAAA,CAAAe,WAAA,GAAAA,WAAA;;AAEM,MAAMI,gBAAgB,GAAGA,CAAAH,UAAU,KAAID,WAAW,CAACC,UAAU,EAAE,KAAK,CAAC,CAACP,QAAQ,CAAC,KAAK,CAAC,CAAAT,OAAA,CAAAmB,gBAAA,GAAAA,gBAAA;;AAErF,MAAMC,cAAc,GAAGA,CAAAN,GAAG,KAAIC,WAAW,CAACD,GAAG,EAAE,IAAI,CAAC,CAACL,QAAQ,CAAC,KAAK,CAAC,CAAAT,OAAA,CAAAoB,cAAA,GAAAA,cAAA;;AAEpE,MAAMC,0BAA0B,GAAGA,CAAAC,GAAG,KAAI,IAAAC,eAAK,EAAC,IAAAC,mBAAS,EAACT,WAAW,CAACO,GAAG,EAAE,KAAK,CAAC,CAACX,KAAK,CAAC,CAAC,CAAC,CAAC,CAACA,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAAX,OAAA,CAAAqB,0BAAA,GAAAA,0BAAA"} \ No newline at end of file diff --git a/dist/lib/compileJsonAbis.js b/dist/lib/compileJsonAbis.js index f0ceb8e..37f76c1 100755 --- a/dist/lib/compileJsonAbis.js +++ b/dist/lib/compileJsonAbis.js @@ -12,7 +12,7 @@ const jsonPath = `${__dirname}/jsonAbis`; const ozPath = _path.default.resolve('node_modules/openzeppelin-solidity/build/contracts'); const destinationFile = `${__dirname}/compiled_abi.json`; -compileAbi([jsonPath, ozPath]).then(abi => { +compileAbi([jsonPath, ozPath]).then((abi) => { writeFile(destinationFile, JSON.stringify(abi, null, 2)). then(() => { console.log(`New ABI saved on ${destinationFile}`); @@ -25,11 +25,11 @@ async function compileAbi(dirs) { let jsonFiles = []; for (let dir of dirs) { let files = await readDir(dir); - files = files.filter(file => _path.default.extname(file) === '.json'); + files = files.filter((file) => _path.default.extname(file) === '.json'); if (!files || !files.length) throw new Error(`No json files in dir ${dir}`); - jsonFiles = jsonFiles.concat(files.map(file => `${dir}/${file}`)); + jsonFiles = jsonFiles.concat(files.map((file) => `${dir}/${file}`)); } - let abi = await Promise.all(jsonFiles.map(file => readJson(`${file}`).then(content => { + let abi = await Promise.all(jsonFiles.map((file) => readJson(`${file}`).then((content) => { return Array.isArray(content) ? content : content.abi; }))); if (!abi) throw new Error(`Invalid abi `); @@ -55,15 +55,15 @@ async function readJson(file) { function processAbi(abi) { // remove fallbacks - abi = abi.filter(a => a.type !== 'fallback'); + abi = abi.filter((a) => a.type !== 'fallback'); // remove duplicates - abi = [...new Set(abi.map(a => JSON.stringify(a)))].map(a => JSON.parse(a)); + abi = [...new Set(abi.map((a) => JSON.stringify(a)))].map((a) => JSON.parse(a)); // add signatures abi = (0, _utils.addSignatureDataToAbi)(abi); // detect 4 bytes collisions - let signatures = abi.map(a => a[_types.ABI_SIGNATURE].signature).filter(v => v); + let signatures = abi.map((a) => a[_types.ABI_SIGNATURE].signature).filter((v) => v); signatures = [...new Set(signatures)]; - let fourBytes = signatures.map(s => s.slice(0, 8)); + let fourBytes = signatures.map((s) => s.slice(0, 8)); if (fourBytes.length !== [...new Set(fourBytes)].length) { console.log(fourBytes.filter((v, i) => fourBytes.indexOf(v) !== i)); throw new Error('4bytes collision'); @@ -73,7 +73,8 @@ function processAbi(abi) { return abi; } -process.on('unhandledRejection', err => { +process.on('unhandledRejection', (err) => { console.error(err); process.exit(9); -}); \ No newline at end of file +}); +//# sourceMappingURL=compileJsonAbis.js.map \ No newline at end of file diff --git a/dist/lib/compileJsonAbis.js.map b/dist/lib/compileJsonAbis.js.map new file mode 100644 index 0000000..91c2d7a --- /dev/null +++ b/dist/lib/compileJsonAbis.js.map @@ -0,0 +1 @@ +{"version":3,"file":"compileJsonAbis.js","names":["_fs","_interopRequireDefault","require","_util","_path","_types","_utils","obj","__esModule","default","readDir","util","promisify","fs","readdir","readFile","writeFile","jsonPath","__dirname","ozPath","path","resolve","destinationFile","compileAbi","then","abi","JSON","stringify","console","log","process","exit","dirs","jsonFiles","dir","files","filter","file","extname","length","Error","concat","map","Promise","all","readJson","content","Array","isArray","reduce","a","v","i","array","processAbi","err","json","parse","reject","type","Set","addSignatureDataToAbi","signatures","ABI_SIGNATURE","signature","fourBytes","s","slice","indexOf","filterEvents","on","error"],"sources":["../../src/lib/compileJsonAbis.js"],"sourcesContent":["import fs from 'fs'\nimport util from 'util'\nimport path from 'path'\nimport { ABI_SIGNATURE } from './types'\nimport { addSignatureDataToAbi, filterEvents } from './utils'\n\nconst readDir = util.promisify(fs.readdir)\nconst readFile = util.promisify(fs.readFile)\nconst writeFile = util.promisify(fs.writeFile)\n\nconst jsonPath = `${__dirname}/jsonAbis`\nconst ozPath = path.resolve('node_modules/openzeppelin-solidity/build/contracts')\nconst destinationFile = `${__dirname}/compiled_abi.json`\n\ncompileAbi([jsonPath, ozPath]).then(abi => {\n writeFile(destinationFile, JSON.stringify(abi, null, 2))\n .then(() => {\n console.log(`New ABI saved on ${destinationFile}`)\n process.exit(0)\n })\n})\n\nasync function compileAbi (dirs) {\n try {\n let jsonFiles = []\n for (let dir of dirs) {\n let files = await readDir(dir)\n files = files.filter(file => path.extname(file) === '.json')\n if (!files || !files.length) throw new Error(`No json files in dir ${dir}`)\n jsonFiles = jsonFiles.concat(files.map(file => `${dir}/${file}`))\n }\n let abi = await Promise.all(jsonFiles.map(file => readJson(`${file}`).then(content => {\n return (Array.isArray(content)) ? content : content.abi\n })))\n if (!abi) throw new Error(`Invalid abi `)\n abi = abi.reduce((a, v, i, array) => v.concat(a))\n abi = processAbi(abi)\n return abi\n } catch (err) {\n console.log('Compile Error', err)\n process.exit(9)\n }\n}\n\nasync function readJson (file) {\n console.log(`Reading file ${file}`)\n try {\n let json = await readFile(file, 'utf-8')\n return JSON.parse(json)\n } catch (err) {\n console.log(file, err)\n return Promise.reject(err)\n }\n}\n\nexport function processAbi (abi) {\n // remove fallbacks\n abi = abi.filter(a => a.type !== 'fallback')\n // remove duplicates\n abi = [...new Set(abi.map(a => JSON.stringify(a)))].map(a => JSON.parse(a))\n // add signatures\n abi = addSignatureDataToAbi(abi)\n // detect 4 bytes collisions\n let signatures = (abi.map(a => a[ABI_SIGNATURE].signature)).filter(v => v)\n signatures = [...new Set(signatures)]\n let fourBytes = signatures.map(s => s.slice(0, 8))\n if (fourBytes.length !== [...new Set(fourBytes)].length) {\n console.log(fourBytes.filter((v, i) => fourBytes.indexOf(v) !== i))\n throw new Error('4bytes collision')\n }\n // filter events\n abi = filterEvents(abi)\n return abi\n}\n\nprocess.on('unhandledRejection', err => {\n console.error(err)\n process.exit(9)\n})\n"],"mappings":"2GAAA,IAAAA,GAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,KAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA,YAA6D,SAAAD,uBAAAM,GAAA,UAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;;AAE7D,MAAMG,OAAO,GAAGC,aAAI,CAACC,SAAS,CAACC,WAAE,CAACC,OAAO,CAAC;AAC1C,MAAMC,QAAQ,GAAGJ,aAAI,CAACC,SAAS,CAACC,WAAE,CAACE,QAAQ,CAAC;AAC5C,MAAMC,SAAS,GAAGL,aAAI,CAACC,SAAS,CAACC,WAAE,CAACG,SAAS,CAAC;;AAE9C,MAAMC,QAAQ,GAAI,GAAEC,SAAU,WAAU;AACxC,MAAMC,MAAM,GAAGC,aAAI,CAACC,OAAO,CAAC,oDAAoD,CAAC;AACjF,MAAMC,eAAe,GAAI,GAAEJ,SAAU,oBAAmB;;AAExDK,UAAU,CAAC,CAACN,QAAQ,EAAEE,MAAM,CAAC,CAAC,CAACK,IAAI,CAAC,CAAAC,GAAG,KAAI;EACzCT,SAAS,CAACM,eAAe,EAAEI,IAAI,CAACC,SAAS,CAACF,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;EACrDD,IAAI,CAAC,MAAM;IACVI,OAAO,CAACC,GAAG,CAAE,oBAAmBP,eAAgB,EAAC,CAAC;IAClDQ,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC;EACjB,CAAC,CAAC;AACN,CAAC,CAAC;;AAEF,eAAeR,UAAUA,CAAES,IAAI,EAAE;EAC/B,IAAI;IACF,IAAIC,SAAS,GAAG,EAAE;IAClB,KAAK,IAAIC,GAAG,IAAIF,IAAI,EAAE;MACpB,IAAIG,KAAK,GAAG,MAAMzB,OAAO,CAACwB,GAAG,CAAC;MAC9BC,KAAK,GAAGA,KAAK,CAACC,MAAM,CAAC,CAAAC,IAAI,KAAIjB,aAAI,CAACkB,OAAO,CAACD,IAAI,CAAC,KAAK,OAAO,CAAC;MAC5D,IAAI,CAACF,KAAK,IAAI,CAACA,KAAK,CAACI,MAAM,EAAE,MAAM,IAAIC,KAAK,CAAE,wBAAuBN,GAAI,EAAC,CAAC;MAC3ED,SAAS,GAAGA,SAAS,CAACQ,MAAM,CAACN,KAAK,CAACO,GAAG,CAAC,CAAAL,IAAI,KAAK,GAAEH,GAAI,IAAGG,IAAK,EAAC,CAAC,CAAC;IACnE;IACA,IAAIZ,GAAG,GAAG,MAAMkB,OAAO,CAACC,GAAG,CAACX,SAAS,CAACS,GAAG,CAAC,CAAAL,IAAI,KAAIQ,QAAQ,CAAE,GAAER,IAAK,EAAC,CAAC,CAACb,IAAI,CAAC,CAAAsB,OAAO,KAAI;MACpF,OAAQC,KAAK,CAACC,OAAO,CAACF,OAAO,CAAC,GAAIA,OAAO,GAAGA,OAAO,CAACrB,GAAG;IACzD,CAAC,CAAC,CAAC,CAAC;IACJ,IAAI,CAACA,GAAG,EAAE,MAAM,IAAIe,KAAK,CAAE,cAAa,CAAC;IACzCf,GAAG,GAAGA,GAAG,CAACwB,MAAM,CAAC,CAACC,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAEC,KAAK,KAAKF,CAAC,CAACV,MAAM,CAACS,CAAC,CAAC,CAAC;IACjDzB,GAAG,GAAG6B,UAAU,CAAC7B,GAAG,CAAC;IACrB,OAAOA,GAAG;EACZ,CAAC,CAAC,OAAO8B,GAAG,EAAE;IACZ3B,OAAO,CAACC,GAAG,CAAC,eAAe,EAAE0B,GAAG,CAAC;IACjCzB,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC;EACjB;AACF;;AAEA,eAAec,QAAQA,CAAER,IAAI,EAAE;EAC7BT,OAAO,CAACC,GAAG,CAAE,gBAAeQ,IAAK,EAAC,CAAC;EACnC,IAAI;IACF,IAAImB,IAAI,GAAG,MAAMzC,QAAQ,CAACsB,IAAI,EAAE,OAAO,CAAC;IACxC,OAAOX,IAAI,CAAC+B,KAAK,CAACD,IAAI,CAAC;EACzB,CAAC,CAAC,OAAOD,GAAG,EAAE;IACZ3B,OAAO,CAACC,GAAG,CAACQ,IAAI,EAAEkB,GAAG,CAAC;IACtB,OAAOZ,OAAO,CAACe,MAAM,CAACH,GAAG,CAAC;EAC5B;AACF;;AAEO,SAASD,UAAUA,CAAE7B,GAAG,EAAE;EAC/B;EACAA,GAAG,GAAGA,GAAG,CAACW,MAAM,CAAC,CAAAc,CAAC,KAAIA,CAAC,CAACS,IAAI,KAAK,UAAU,CAAC;EAC5C;EACAlC,GAAG,GAAG,CAAC,GAAG,IAAImC,GAAG,CAACnC,GAAG,CAACiB,GAAG,CAAC,CAAAQ,CAAC,KAAIxB,IAAI,CAACC,SAAS,CAACuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAACR,GAAG,CAAC,CAAAQ,CAAC,KAAIxB,IAAI,CAAC+B,KAAK,CAACP,CAAC,CAAC,CAAC;EAC3E;EACAzB,GAAG,GAAG,IAAAoC,4BAAqB,EAACpC,GAAG,CAAC;EAChC;EACA,IAAIqC,UAAU,GAAIrC,GAAG,CAACiB,GAAG,CAAC,CAAAQ,CAAC,KAAIA,CAAC,CAACa,oBAAa,CAAC,CAACC,SAAS,CAAC,CAAE5B,MAAM,CAAC,CAAAe,CAAC,KAAIA,CAAC,CAAC;EAC1EW,UAAU,GAAG,CAAC,GAAG,IAAIF,GAAG,CAACE,UAAU,CAAC,CAAC;EACrC,IAAIG,SAAS,GAAGH,UAAU,CAACpB,GAAG,CAAC,CAAAwB,CAAC,KAAIA,CAAC,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAClD,IAAIF,SAAS,CAAC1B,MAAM,KAAK,CAAC,GAAG,IAAIqB,GAAG,CAACK,SAAS,CAAC,CAAC,CAAC1B,MAAM,EAAE;IACvDX,OAAO,CAACC,GAAG,CAACoC,SAAS,CAAC7B,MAAM,CAAC,CAACe,CAAC,EAAEC,CAAC,KAAKa,SAAS,CAACG,OAAO,CAACjB,CAAC,CAAC,KAAKC,CAAC,CAAC,CAAC;IACnE,MAAM,IAAIZ,KAAK,CAAC,kBAAkB,CAAC;EACrC;EACA;EACAf,GAAG,GAAG,IAAA4C,mBAAY,EAAC5C,GAAG,CAAC;EACvB,OAAOA,GAAG;AACZ;;AAEAK,OAAO,CAACwC,EAAE,CAAC,oBAAoB,EAAE,CAAAf,GAAG,KAAI;EACtC3B,OAAO,CAAC2C,KAAK,CAAChB,GAAG,CAAC;EAClBzB,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC"} \ No newline at end of file diff --git a/dist/lib/interfacesIds.js b/dist/lib/interfacesIds.js index 970a4d0..4e279ba 100755 --- a/dist/lib/interfacesIds.js +++ b/dist/lib/interfacesIds.js @@ -1,4 +1,4 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = exports.interfacesIds = void 0;var _utils = require("./utils"); +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.interfacesIds = exports.default = void 0;var _utils = require("./utils"); const erc20methods = [ 'totalSupply()', @@ -10,10 +10,10 @@ const erc20methods = [ const erc677Methods = erc20methods.concat([ -'transferAndCall(address,uint256,bytes)']); +'transferAndCall(address,uint256,bytes)'] +); - -const interfacesIds = { +const interfacesIds = exports.interfacesIds = { ERC20: makeInterface(erc20methods), ERC677: makeInterface(erc677Methods), ERC165: makeInterface(['supportsInterface(bytes4)']), @@ -26,26 +26,27 @@ const interfacesIds = { 'isApprovedForAll(address,address)', 'transferFrom(address,address,uint256)', 'safeTransferFrom(address,address,uint256)', - 'safeTransferFrom(address,address,uint256,bytes)']), - + 'safeTransferFrom(address,address,uint256,bytes)'] + ), ERC721Enumerable: makeInterface([ 'totalSupply()', 'tokenOfOwnerByIndex(address,uint256)', - 'tokenByIndex(uint256)']), - + 'tokenByIndex(uint256)'] + ), ERC721Metadata: makeInterface([ 'name()', 'symbol()', - 'tokenURI(uint256)']), - + 'tokenURI(uint256)'] + ), ERC721Exists: makeInterface([ - 'exists(uint256)']) };exports.interfacesIds = interfacesIds; - - + 'exists(uint256)'] + ) +}; function makeInterface(methods) { let id = (0, _utils.erc165IdFromMethods)(methods); return { methods, id }; -}var _default = +}var _default = exports.default = -interfacesIds;exports.default = _default; \ No newline at end of file +interfacesIds; +//# sourceMappingURL=interfacesIds.js.map \ No newline at end of file diff --git a/dist/lib/interfacesIds.js.map b/dist/lib/interfacesIds.js.map new file mode 100644 index 0000000..21ee7a1 --- /dev/null +++ b/dist/lib/interfacesIds.js.map @@ -0,0 +1 @@ +{"version":3,"file":"interfacesIds.js","names":["_utils","require","erc20methods","erc677Methods","concat","interfacesIds","exports","ERC20","makeInterface","ERC677","ERC165","ERC721","ERC721Enumerable","ERC721Metadata","ERC721Exists","methods","id","erc165IdFromMethods","_default","default"],"sources":["../../src/lib/interfacesIds.js"],"sourcesContent":["import { erc165IdFromMethods } from './utils'\n\nconst erc20methods = [\n 'totalSupply()',\n 'balanceOf(address)',\n 'allowance(address,address)',\n 'transfer(address,uint256)',\n 'approve(address,uint256)',\n 'transferFrom(address,address,uint256)'\n]\n\nconst erc677Methods = erc20methods.concat([\n 'transferAndCall(address,uint256,bytes)'\n])\n\nexport const interfacesIds = {\n ERC20: makeInterface(erc20methods),\n ERC677: makeInterface(erc677Methods),\n ERC165: makeInterface(['supportsInterface(bytes4)']),\n ERC721: makeInterface([\n 'balanceOf(address)',\n 'ownerOf(uint256)',\n 'approve(address,uint256)',\n 'getApproved(uint256)',\n 'setApprovalForAll(address,bool)',\n 'isApprovedForAll(address,address)',\n 'transferFrom(address,address,uint256)',\n 'safeTransferFrom(address,address,uint256)',\n 'safeTransferFrom(address,address,uint256,bytes)'\n ]),\n ERC721Enumerable: makeInterface([\n 'totalSupply()',\n 'tokenOfOwnerByIndex(address,uint256)',\n 'tokenByIndex(uint256)'\n ]),\n ERC721Metadata: makeInterface([\n 'name()',\n 'symbol()',\n 'tokenURI(uint256)'\n ]),\n ERC721Exists: makeInterface([\n 'exists(uint256)'\n ])\n}\n\nfunction makeInterface (methods) {\n let id = erc165IdFromMethods(methods)\n return { methods, id }\n}\n\nexport default interfacesIds\n"],"mappings":"4HAAA,IAAAA,MAAA,GAAAC,OAAA;;AAEA,MAAMC,YAAY,GAAG;AACnB,eAAe;AACf,oBAAoB;AACpB,4BAA4B;AAC5B,2BAA2B;AAC3B,0BAA0B;AAC1B,uCAAuC,CACxC;;;AAED,MAAMC,aAAa,GAAGD,YAAY,CAACE,MAAM,CAAC;AACxC,wCAAwC;AACzC,CAAC;;AAEK,MAAMC,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG;EAC3BE,KAAK,EAAEC,aAAa,CAACN,YAAY,CAAC;EAClCO,MAAM,EAAED,aAAa,CAACL,aAAa,CAAC;EACpCO,MAAM,EAAEF,aAAa,CAAC,CAAC,2BAA2B,CAAC,CAAC;EACpDG,MAAM,EAAEH,aAAa,CAAC;EACpB,oBAAoB;EACpB,kBAAkB;EAClB,0BAA0B;EAC1B,sBAAsB;EACtB,iCAAiC;EACjC,mCAAmC;EACnC,uCAAuC;EACvC,2CAA2C;EAC3C,iDAAiD;EAClD,CAAC;EACFI,gBAAgB,EAAEJ,aAAa,CAAC;EAC9B,eAAe;EACf,sCAAsC;EACtC,uBAAuB;EACxB,CAAC;EACFK,cAAc,EAAEL,aAAa,CAAC;EAC5B,QAAQ;EACR,UAAU;EACV,mBAAmB;EACpB,CAAC;EACFM,YAAY,EAAEN,aAAa,CAAC;EAC1B,iBAAiB;EAClB;AACH,CAAC;;AAED,SAASA,aAAaA,CAAEO,OAAO,EAAE;EAC/B,IAAIC,EAAE,GAAG,IAAAC,0BAAmB,EAACF,OAAO,CAAC;EACrC,OAAO,EAAEA,OAAO,EAAEC,EAAE,CAAC,CAAC;AACxB,CAAC,IAAAE,QAAA,GAAAZ,OAAA,CAAAa,OAAA;;AAEcd,aAAa"} \ No newline at end of file diff --git a/dist/lib/nativeContracts/FakeABI.js b/dist/lib/nativeContracts/FakeABI.js index 4e1439c..1d93829 100644 --- a/dist/lib/nativeContracts/FakeABI.js +++ b/dist/lib/nativeContracts/FakeABI.js @@ -1,26 +1,26 @@ "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = FakeABI; var _rskUtils = require("@rsksmart/rsk-utils"); var _utils = require("../utils"); -var btcUtils = _interopRequireWildcard(require("../btcUtils"));function _getRequireWildcardCache() {if (typeof WeakMap !== "function") return null;var cache = new WeakMap();_getRequireWildcardCache = function () {return cache;};return cache;}function _interopRequireWildcard(obj) {if (obj && obj.__esModule) {return obj;}if (obj === null || typeof obj !== "object" && typeof obj !== "function") {return { default: obj };}var cache = _getRequireWildcardCache();if (cache && cache.has(obj)) {return cache.get(obj);}var newObj = {};var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var key in obj) {if (Object.prototype.hasOwnProperty.call(obj, key)) {var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;if (desc && (desc.get || desc.set)) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}newObj.default = obj;if (cache) {cache.set(obj, newObj);}return newObj;} +var btcUtils = _interopRequireWildcard(require("../btcUtils"));function _getRequireWildcardCache(e) {if ("function" != typeof WeakMap) return null;var r = new WeakMap(),t = new WeakMap();return (_getRequireWildcardCache = function (e) {return e ? t : r;})(e);}function _interopRequireWildcard(e, r) {if (!r && e && e.__esModule) return e;if (null === e || "object" != typeof e && "function" != typeof e) return { default: e };var t = _getRequireWildcardCache(r);if (t && t.has(e)) return t.get(e);var n = { __proto__: null },a = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) {var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];}return n.default = e, t && t.set(e, n), n;} function FakeABI(network) { - const decodeBtcTxHash = data => { + const decodeBtcTxHash = (data) => { if ((0, _rskUtils.remove0x)(data).length === 128) { let buffer = Buffer.from((0, _rskUtils.remove0x)(data), 'hex'); data = (0, _rskUtils.add0x)(buffer.toString('ascii')); } return data; }; - const decodeArray = data => data.map(d => Array.isArray(d) ? decodeArray(d) : (0, _rskUtils.add0x)(d.toString('hex'))); + const decodeArray = (data) => data.map((d) => Array.isArray(d) ? decodeArray(d) : (0, _rskUtils.add0x)(d.toString('hex'))); - const decodeFederationData = data => { + const decodeFederationData = (data) => { let [a160, keys] = data; let address = btcUtils.h160toAddress(a160, { prefixKey: 'scriptHash', network }).toString('hex'); - keys = keys.map(d => btcUtils.rskAddressFromBtcPublicKey(d.toString('hex'))); + keys = keys.map((d) => btcUtils.rskAddressFromBtcPublicKey(d.toString('hex'))); return [address, keys]; }; - const commitFederationDecoder = data => { + const commitFederationDecoder = (data) => { const decoded = _rskUtils.rlp.decode(data); let [oldData, newData, block] = decoded; let [oldFederationAddress, oldFederationMembers] = decodeFederationData(oldData); @@ -35,102 +35,103 @@ function FakeABI(network) { { indexed: true, name: 'to', - type: 'address' }, - + type: 'address' + }, { indexed: false, name: 'blockHash', - type: 'string' }, - + type: 'string' + }, { indexed: false, name: 'value', - type: 'uint256' }], - + type: 'uint256' + }], name: 'mining_fee_topic', - type: 'event' }, - + type: 'event' + }, { // Bridge events inputs: [ { indexed: false, name: 'btcTxHash', - type: 'string' }, - + type: 'string' + }, { indexed: false, name: 'btcTx', // raw tx? - type: 'string' }], - + type: 'string' + }], name: 'release_btc_topic', - type: 'event' }, - + type: 'event' + }, { inputs: [ { indexed: false, name: 'sender', - type: 'address' }], - + type: 'address' + }], name: 'update_collections_topic', - type: 'event' }, - + type: 'event' + }, { inputs: [ { indexed: false, name: 'btcTxHash', type: 'string', - _filter: decodeBtcTxHash }, - + _filter: decodeBtcTxHash + }, { indexed: false, name: 'federatorPublicKey', - type: 'string' }, - + type: 'string' + }, { indexed: false, name: 'rskTxHash', - type: 'string' }], - + type: 'string' + }], name: 'add_signature_topic', - type: 'event' }, - + type: 'event' + }, { inputs: [ { indexed: false, name: 'oldFederationAddress', - type: 'string' }, - + type: 'string' + }, { indexed: false, name: 'oldFederationMembers', - type: 'address[]' }, - + type: 'address[]' + }, { indexed: false, name: 'newFederationAddress', - type: 'string' }, - + type: 'string' + }, { indexed: false, name: 'newFederationMembers', - type: 'address[]' }, - + type: 'address[]' + }, { indexed: false, name: 'activationBlockNumber', - type: 'string' }], - + type: 'string' + }], name: 'commit_federation_topic', type: 'event', - _decoder: commitFederationDecoder }])); - - -} \ No newline at end of file + _decoder: commitFederationDecoder + }] + )); +} +//# sourceMappingURL=FakeABI.js.map \ No newline at end of file diff --git a/dist/lib/nativeContracts/FakeABI.js.map b/dist/lib/nativeContracts/FakeABI.js.map new file mode 100644 index 0000000..7d8de7c --- /dev/null +++ b/dist/lib/nativeContracts/FakeABI.js.map @@ -0,0 +1 @@ +{"version":3,"file":"FakeABI.js","names":["_rskUtils","require","_utils","btcUtils","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","FakeABI","network","decodeBtcTxHash","data","remove0x","length","buffer","Buffer","from","add0x","toString","decodeArray","map","d","Array","isArray","decodeFederationData","a160","keys","address","h160toAddress","prefixKey","rskAddressFromBtcPublicKey","commitFederationDecoder","decoded","rlp","decode","oldData","newData","block","oldFederationAddress","oldFederationMembers","newFederationAddress","newFederationMembers","freeze","addSignatureDataToAbi","anonymous","inputs","indexed","name","type","_filter","_decoder"],"sources":["../../../src/lib/nativeContracts/FakeABI.js"],"sourcesContent":["\nimport { remove0x, add0x, rlp } from '@rsksmart/rsk-utils'\nimport { addSignatureDataToAbi } from '../utils'\nimport * as btcUtils from '../btcUtils'\n\nexport default function FakeABI (network) {\n const decodeBtcTxHash = data => {\n if (remove0x(data).length === 128) {\n let buffer = Buffer.from(remove0x(data), 'hex')\n data = add0x(buffer.toString('ascii'))\n }\n return data\n }\n const decodeArray = data => data.map(d => Array.isArray(d) ? decodeArray(d) : add0x(d.toString('hex')))\n\n const decodeFederationData = data => {\n let [a160, keys] = data\n let address = btcUtils.h160toAddress(a160, { prefixKey: 'scriptHash', network }).toString('hex')\n keys = keys.map(d => btcUtils.rskAddressFromBtcPublicKey(d.toString('hex')))\n return [address, keys]\n }\n\n const commitFederationDecoder = data => {\n const decoded = rlp.decode(data)\n let [oldData, newData, block] = decoded\n let [oldFederationAddress, oldFederationMembers] = decodeFederationData(oldData)\n let [newFederationAddress, newFederationMembers] = decodeFederationData(newData)\n block = block.toString('ascii')\n return [oldFederationAddress, oldFederationMembers, newFederationAddress, newFederationMembers, block]\n }\n return Object.freeze(addSignatureDataToAbi([\n { // Remasc events\n anonymous: false,\n inputs: [\n {\n indexed: true,\n name: 'to',\n type: 'address'\n },\n {\n indexed: false,\n name: 'blockHash',\n type: 'string'\n },\n {\n indexed: false,\n name: 'value',\n type: 'uint256'\n }\n ],\n name: 'mining_fee_topic',\n type: 'event'\n },\n { // Bridge events\n inputs: [\n {\n indexed: false,\n name: 'btcTxHash',\n type: 'string'\n },\n {\n indexed: false,\n name: 'btcTx', // raw tx?\n type: 'string'\n }\n ],\n name: 'release_btc_topic',\n type: 'event'\n },\n {\n inputs: [\n {\n indexed: false,\n name: 'sender',\n type: 'address'\n }\n ],\n name: 'update_collections_topic',\n type: 'event'\n },\n {\n inputs: [\n {\n indexed: false,\n name: 'btcTxHash',\n type: 'string',\n _filter: decodeBtcTxHash\n },\n {\n indexed: false,\n name: 'federatorPublicKey',\n type: 'string'\n },\n {\n indexed: false,\n name: 'rskTxHash',\n type: 'string'\n }\n ],\n name: 'add_signature_topic',\n type: 'event'\n },\n {\n inputs: [\n {\n indexed: false,\n name: 'oldFederationAddress',\n type: 'string'\n },\n {\n indexed: false,\n name: 'oldFederationMembers',\n type: 'address[]'\n },\n {\n indexed: false,\n name: 'newFederationAddress',\n type: 'string'\n },\n {\n indexed: false,\n name: 'newFederationMembers',\n type: 'address[]'\n },\n {\n indexed: false,\n name: 'activationBlockNumber',\n type: 'string'\n }\n ],\n name: 'commit_federation_topic',\n type: 'event',\n _decoder: commitFederationDecoder\n }\n ]))\n}\n"],"mappings":";AACA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAC,uBAAA,CAAAH,OAAA,iBAAuC,SAAAI,yBAAAC,CAAA,4BAAAC,OAAA,kBAAAC,CAAA,OAAAD,OAAA,GAAAE,CAAA,OAAAF,OAAA,WAAAF,wBAAA,YAAAA,CAAAC,CAAA,UAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,IAAAF,CAAA,YAAAF,wBAAAE,CAAA,EAAAE,CAAA,QAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,cAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,OAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,MAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,MAAAQ,CAAA,KAAAC,SAAA,SAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,UAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,QAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,SAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,UAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;;AAExB,SAASY,OAAOA,CAAEC,OAAO,EAAE;EACxC,MAAMC,eAAe,GAAGA,CAAAC,IAAI,KAAI;IAC9B,IAAI,IAAAC,kBAAQ,EAACD,IAAI,CAAC,CAACE,MAAM,KAAK,GAAG,EAAE;MACjC,IAAIC,MAAM,GAAGC,MAAM,CAACC,IAAI,CAAC,IAAAJ,kBAAQ,EAACD,IAAI,CAAC,EAAE,KAAK,CAAC;MAC/CA,IAAI,GAAG,IAAAM,eAAK,EAACH,MAAM,CAACI,QAAQ,CAAC,OAAO,CAAC,CAAC;IACxC;IACA,OAAOP,IAAI;EACb,CAAC;EACD,MAAMQ,WAAW,GAAGA,CAAAR,IAAI,KAAIA,IAAI,CAACS,GAAG,CAAC,CAAAC,CAAC,KAAIC,KAAK,CAACC,OAAO,CAACF,CAAC,CAAC,GAAGF,WAAW,CAACE,CAAC,CAAC,GAAG,IAAAJ,eAAK,EAACI,CAAC,CAACH,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;;EAEvG,MAAMM,oBAAoB,GAAGA,CAAAb,IAAI,KAAI;IACnC,IAAI,CAACc,IAAI,EAAEC,IAAI,CAAC,GAAGf,IAAI;IACvB,IAAIgB,OAAO,GAAG1C,QAAQ,CAAC2C,aAAa,CAACH,IAAI,EAAE,EAAEI,SAAS,EAAE,YAAY,EAAEpB,OAAO,CAAC,CAAC,CAAC,CAACS,QAAQ,CAAC,KAAK,CAAC;IAChGQ,IAAI,GAAGA,IAAI,CAACN,GAAG,CAAC,CAAAC,CAAC,KAAIpC,QAAQ,CAAC6C,0BAA0B,CAACT,CAAC,CAACH,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5E,OAAO,CAACS,OAAO,EAAED,IAAI,CAAC;EACxB,CAAC;;EAED,MAAMK,uBAAuB,GAAGA,CAAApB,IAAI,KAAI;IACtC,MAAMqB,OAAO,GAAGC,aAAG,CAACC,MAAM,CAACvB,IAAI,CAAC;IAChC,IAAI,CAACwB,OAAO,EAAEC,OAAO,EAAEC,KAAK,CAAC,GAAGL,OAAO;IACvC,IAAI,CAACM,oBAAoB,EAAEC,oBAAoB,CAAC,GAAGf,oBAAoB,CAACW,OAAO,CAAC;IAChF,IAAI,CAACK,oBAAoB,EAAEC,oBAAoB,CAAC,GAAGjB,oBAAoB,CAACY,OAAO,CAAC;IAChFC,KAAK,GAAGA,KAAK,CAACnB,QAAQ,CAAC,OAAO,CAAC;IAC/B,OAAO,CAACoB,oBAAoB,EAAEC,oBAAoB,EAAEC,oBAAoB,EAAEC,oBAAoB,EAAEJ,KAAK,CAAC;EACxG,CAAC;EACD,OAAOtC,MAAM,CAAC2C,MAAM,CAAC,IAAAC,4BAAqB,EAAC;EACzC,EAAE;IACAC,SAAS,EAAE,KAAK;IAChBC,MAAM,EAAE;IACN;MACEC,OAAO,EAAE,IAAI;MACbC,IAAI,EAAE,IAAI;MACVC,IAAI,EAAE;IACR,CAAC;IACD;MACEF,OAAO,EAAE,KAAK;MACdC,IAAI,EAAE,WAAW;MACjBC,IAAI,EAAE;IACR,CAAC;IACD;MACEF,OAAO,EAAE,KAAK;MACdC,IAAI,EAAE,OAAO;MACbC,IAAI,EAAE;IACR,CAAC,CACF;;IACDD,IAAI,EAAE,kBAAkB;IACxBC,IAAI,EAAE;EACR,CAAC;EACD,EAAE;IACAH,MAAM,EAAE;IACN;MACEC,OAAO,EAAE,KAAK;MACdC,IAAI,EAAE,WAAW;MACjBC,IAAI,EAAE;IACR,CAAC;IACD;MACEF,OAAO,EAAE,KAAK;MACdC,IAAI,EAAE,OAAO,EAAE;MACfC,IAAI,EAAE;IACR,CAAC,CACF;;IACDD,IAAI,EAAE,mBAAmB;IACzBC,IAAI,EAAE;EACR,CAAC;EACD;IACEH,MAAM,EAAE;IACN;MACEC,OAAO,EAAE,KAAK;MACdC,IAAI,EAAE,QAAQ;MACdC,IAAI,EAAE;IACR,CAAC,CACF;;IACDD,IAAI,EAAE,0BAA0B;IAChCC,IAAI,EAAE;EACR,CAAC;EACD;IACEH,MAAM,EAAE;IACN;MACEC,OAAO,EAAE,KAAK;MACdC,IAAI,EAAE,WAAW;MACjBC,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAEvC;IACX,CAAC;IACD;MACEoC,OAAO,EAAE,KAAK;MACdC,IAAI,EAAE,oBAAoB;MAC1BC,IAAI,EAAE;IACR,CAAC;IACD;MACEF,OAAO,EAAE,KAAK;MACdC,IAAI,EAAE,WAAW;MACjBC,IAAI,EAAE;IACR,CAAC,CACF;;IACDD,IAAI,EAAE,qBAAqB;IAC3BC,IAAI,EAAE;EACR,CAAC;EACD;IACEH,MAAM,EAAE;IACN;MACEC,OAAO,EAAE,KAAK;MACdC,IAAI,EAAE,sBAAsB;MAC5BC,IAAI,EAAE;IACR,CAAC;IACD;MACEF,OAAO,EAAE,KAAK;MACdC,IAAI,EAAE,sBAAsB;MAC5BC,IAAI,EAAE;IACR,CAAC;IACD;MACEF,OAAO,EAAE,KAAK;MACdC,IAAI,EAAE,sBAAsB;MAC5BC,IAAI,EAAE;IACR,CAAC;IACD;MACEF,OAAO,EAAE,KAAK;MACdC,IAAI,EAAE,sBAAsB;MAC5BC,IAAI,EAAE;IACR,CAAC;IACD;MACEF,OAAO,EAAE,KAAK;MACdC,IAAI,EAAE,uBAAuB;MAC7BC,IAAI,EAAE;IACR,CAAC,CACF;;IACDD,IAAI,EAAE,yBAAyB;IAC/BC,IAAI,EAAE,OAAO;IACbE,QAAQ,EAAEnB;EACZ,CAAC;EACF,CAAC,CAAC;AACL"} \ No newline at end of file diff --git a/dist/lib/nativeContracts/NativeContracts.js b/dist/lib/nativeContracts/NativeContracts.js index d6d7c6f..7f27c7f 100644 --- a/dist/lib/nativeContracts/NativeContracts.js +++ b/dist/lib/nativeContracts/NativeContracts.js @@ -1,12 +1,12 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.NativeContracts = NativeContracts;exports.default = exports.parseNativeContracts = exports.defaultNativeContracts = void 0; +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.NativeContracts = NativeContracts;exports.parseNativeContracts = exports.defaultNativeContracts = exports.default = void 0; var _rskUtils = require("@rsksmart/rsk-utils"); -const defaultNativeContracts = { +const defaultNativeContracts = exports.defaultNativeContracts = { bridge: '0x0000000000000000000000000000000001000006', - remasc: '0x0000000000000000000000000000000001000008' };exports.defaultNativeContracts = defaultNativeContracts; + remasc: '0x0000000000000000000000000000000001000008' +}; - -const parseNativeContracts = nativeContracts => { +const parseNativeContracts = (nativeContracts) => { if (typeof nativeContracts !== 'object') throw new TypeError(`nativeContracts must be an object`); if (Object.keys(nativeContracts) < 1) throw new Error(`Empty native contracts list`); for (let name in nativeContracts) { @@ -21,19 +21,20 @@ function NativeContracts({ nativeContracts } = {}) { nativeContracts = parseNativeContracts(nativeContracts || defaultNativeContracts); const names = Object.keys(nativeContracts); - const getNativeContractAddress = contractName => { + const getNativeContractAddress = (contractName) => { return nativeContracts[contractName]; }; - const getNativeContractName = address => { + const getNativeContractName = (address) => { address = address.toLowerCase(); - return names.find(name => nativeContracts[name] === address); + return names.find((name) => nativeContracts[name] === address); }; - const isNativeContract = address => !!getNativeContractName(address); + const isNativeContract = (address) => !!getNativeContractName(address); const list = () => nativeContracts; return Object.freeze({ getNativeContractAddress, getNativeContractName, isNativeContract, list }); -}var _default = +}var _default = exports.default = -NativeContracts;exports.default = _default; \ No newline at end of file +NativeContracts; +//# sourceMappingURL=NativeContracts.js.map \ No newline at end of file diff --git a/dist/lib/nativeContracts/NativeContracts.js.map b/dist/lib/nativeContracts/NativeContracts.js.map new file mode 100644 index 0000000..0853d12 --- /dev/null +++ b/dist/lib/nativeContracts/NativeContracts.js.map @@ -0,0 +1 @@ +{"version":3,"file":"NativeContracts.js","names":["_rskUtils","require","defaultNativeContracts","exports","bridge","remasc","parseNativeContracts","nativeContracts","TypeError","Object","keys","Error","name","address","isAddress","toLowerCase","NativeContracts","names","getNativeContractAddress","contractName","getNativeContractName","find","isNativeContract","list","freeze","_default","default"],"sources":["../../../src/lib/nativeContracts/NativeContracts.js"],"sourcesContent":["\nimport { isAddress } from '@rsksmart/rsk-utils'\n\nexport const defaultNativeContracts = {\n bridge: '0x0000000000000000000000000000000001000006',\n remasc: '0x0000000000000000000000000000000001000008'\n}\n\nexport const parseNativeContracts = nativeContracts => {\n if (typeof nativeContracts !== 'object') throw new TypeError(`nativeContracts must be an object`)\n if (Object.keys(nativeContracts) < 1) throw new Error(`Empty native contracts list`)\n for (let name in nativeContracts) {\n let address = nativeContracts[name]\n if (!isAddress(address)) throw new Error(`Address of ${name} is not an address`)\n nativeContracts[name] = address.toLowerCase()\n }\n return nativeContracts\n}\n\nexport function NativeContracts ({ nativeContracts } = {}) {\n nativeContracts = parseNativeContracts(nativeContracts || defaultNativeContracts)\n const names = Object.keys(nativeContracts)\n\n const getNativeContractAddress = contractName => {\n return nativeContracts[contractName]\n }\n const getNativeContractName = address => {\n address = address.toLowerCase()\n return names.find(name => nativeContracts[name] === address)\n }\n\n const isNativeContract = address => !!getNativeContractName(address)\n\n const list = () => nativeContracts\n\n return Object.freeze({ getNativeContractAddress, getNativeContractName, isNativeContract, list })\n}\n\nexport default NativeContracts\n"],"mappings":";AACA,IAAAA,SAAA,GAAAC,OAAA;;AAEO,MAAMC,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,GAAG;EACpCE,MAAM,EAAE,4CAA4C;EACpDC,MAAM,EAAE;AACV,CAAC;;AAEM,MAAMC,oBAAoB,GAAGA,CAAAC,eAAe,KAAI;EACrD,IAAI,OAAOA,eAAe,KAAK,QAAQ,EAAE,MAAM,IAAIC,SAAS,CAAE,mCAAkC,CAAC;EACjG,IAAIC,MAAM,CAACC,IAAI,CAACH,eAAe,CAAC,GAAG,CAAC,EAAE,MAAM,IAAII,KAAK,CAAE,6BAA4B,CAAC;EACpF,KAAK,IAAIC,IAAI,IAAIL,eAAe,EAAE;IAChC,IAAIM,OAAO,GAAGN,eAAe,CAACK,IAAI,CAAC;IACnC,IAAI,CAAC,IAAAE,mBAAS,EAACD,OAAO,CAAC,EAAE,MAAM,IAAIF,KAAK,CAAE,cAAaC,IAAK,oBAAmB,CAAC;IAChFL,eAAe,CAACK,IAAI,CAAC,GAAGC,OAAO,CAACE,WAAW,CAAC,CAAC;EAC/C;EACA,OAAOR,eAAe;AACxB,CAAC,CAAAJ,OAAA,CAAAG,oBAAA,GAAAA,oBAAA;;AAEM,SAASU,eAAeA,CAAE,EAAET,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;EACzDA,eAAe,GAAGD,oBAAoB,CAACC,eAAe,IAAIL,sBAAsB,CAAC;EACjF,MAAMe,KAAK,GAAGR,MAAM,CAACC,IAAI,CAACH,eAAe,CAAC;;EAE1C,MAAMW,wBAAwB,GAAGA,CAAAC,YAAY,KAAI;IAC/C,OAAOZ,eAAe,CAACY,YAAY,CAAC;EACtC,CAAC;EACD,MAAMC,qBAAqB,GAAGA,CAAAP,OAAO,KAAI;IACvCA,OAAO,GAAGA,OAAO,CAACE,WAAW,CAAC,CAAC;IAC/B,OAAOE,KAAK,CAACI,IAAI,CAAC,CAAAT,IAAI,KAAIL,eAAe,CAACK,IAAI,CAAC,KAAKC,OAAO,CAAC;EAC9D,CAAC;;EAED,MAAMS,gBAAgB,GAAGA,CAAAT,OAAO,KAAI,CAAC,CAACO,qBAAqB,CAACP,OAAO,CAAC;;EAEpE,MAAMU,IAAI,GAAGA,CAAA,KAAMhB,eAAe;;EAElC,OAAOE,MAAM,CAACe,MAAM,CAAC,EAAEN,wBAAwB,EAAEE,qBAAqB,EAAEE,gBAAgB,EAAEC,IAAI,CAAC,CAAC,CAAC;AACnG,CAAC,IAAAE,QAAA,GAAAtB,OAAA,CAAAuB,OAAA;;AAEcV,eAAe"} \ No newline at end of file diff --git a/dist/lib/nativeContracts/NativeContractsDecoder.js b/dist/lib/nativeContracts/NativeContractsDecoder.js index d9bdff8..13385b1 100644 --- a/dist/lib/nativeContracts/NativeContractsDecoder.js +++ b/dist/lib/nativeContracts/NativeContractsDecoder.js @@ -8,9 +8,10 @@ function NativeContractsEventDecoder({ bitcoinNetwork, txBlockNumber }) { const ABI = (0, _utils.addSignatureDataToAbi)((0, _bridgeAbi.getBridgeAbi)({ txBlockNumber, bitcoinNetwork })); const solidityDecoder = (0, _EventDecoder.default)(ABI); - const getEventDecoder = log => { + const getEventDecoder = (log) => { const { eventABI } = solidityDecoder.getEventAbi([...log.topics]); return eventABI ? solidityDecoder : nativeDecoder; }; return Object.freeze({ getEventDecoder }); -} \ No newline at end of file +} +//# sourceMappingURL=NativeContractsDecoder.js.map \ No newline at end of file diff --git a/dist/lib/nativeContracts/NativeContractsDecoder.js.map b/dist/lib/nativeContracts/NativeContractsDecoder.js.map new file mode 100644 index 0000000..90690b6 --- /dev/null +++ b/dist/lib/nativeContracts/NativeContractsDecoder.js.map @@ -0,0 +1 @@ +{"version":3,"file":"NativeContractsDecoder.js","names":["_NativeContractsEvents","_interopRequireDefault","require","_EventDecoder","_bridgeAbi","_utils","obj","__esModule","default","NativeContractsEventDecoder","bitcoinNetwork","txBlockNumber","nativeDecoder","NativeContractsEvents","ABI","addSignatureDataToAbi","getBridgeAbi","solidityDecoder","EventDecoder","getEventDecoder","log","eventABI","getEventAbi","topics","Object","freeze"],"sources":["../../../src/lib/nativeContracts/NativeContractsDecoder.js"],"sourcesContent":["import NativeContractsEvents from './NativeContractsEvents'\nimport EventDecoder from '../EventDecoder'\nimport { getBridgeAbi } from './bridgeAbi'\nimport { addSignatureDataToAbi } from '../utils'\n\nexport default function NativeContractsEventDecoder ({ bitcoinNetwork, txBlockNumber }) {\n const nativeDecoder = NativeContractsEvents({ bitcoinNetwork })\n const ABI = addSignatureDataToAbi(getBridgeAbi({ txBlockNumber, bitcoinNetwork }))\n const solidityDecoder = EventDecoder(ABI)\n\n const getEventDecoder = log => {\n const { eventABI } = solidityDecoder.getEventAbi([...log.topics])\n return (eventABI) ? solidityDecoder : nativeDecoder\n }\n return Object.freeze({ getEventDecoder })\n}\n"],"mappings":"yHAAA,IAAAA,sBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA,aAAgD,SAAAD,uBAAAK,GAAA,UAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;;AAEjC,SAASG,2BAA2BA,CAAE,EAAEC,cAAc,EAAEC,aAAa,CAAC,CAAC,EAAE;EACtF,MAAMC,aAAa,GAAG,IAAAC,8BAAqB,EAAC,EAAEH,cAAc,CAAC,CAAC,CAAC;EAC/D,MAAMI,GAAG,GAAG,IAAAC,4BAAqB,EAAC,IAAAC,uBAAY,EAAC,EAAEL,aAAa,EAAED,cAAc,CAAC,CAAC,CAAC,CAAC;EAClF,MAAMO,eAAe,GAAG,IAAAC,qBAAY,EAACJ,GAAG,CAAC;;EAEzC,MAAMK,eAAe,GAAGA,CAAAC,GAAG,KAAI;IAC7B,MAAM,EAAEC,QAAQ,CAAC,CAAC,GAAGJ,eAAe,CAACK,WAAW,CAAC,CAAC,GAAGF,GAAG,CAACG,MAAM,CAAC,CAAC;IACjE,OAAQF,QAAQ,GAAIJ,eAAe,GAAGL,aAAa;EACrD,CAAC;EACD,OAAOY,MAAM,CAACC,MAAM,CAAC,EAAEN,eAAe,CAAC,CAAC,CAAC;AAC3C"} \ No newline at end of file diff --git a/dist/lib/nativeContracts/NativeContractsEvents.js b/dist/lib/nativeContracts/NativeContractsEvents.js index fefee03..4d842f9 100755 --- a/dist/lib/nativeContracts/NativeContractsEvents.js +++ b/dist/lib/nativeContracts/NativeContractsEvents.js @@ -4,27 +4,27 @@ var _FakeABI = _interopRequireDefault(require("./FakeABI"));function _interopReq function NativeContractsEvents({ bitcoinNetwork } = {}) { const network = bitcoinNetwork || 'testnet'; const fakeAbi = (0, _FakeABI.default)(network); - const decodeAddress = address => { + const decodeAddress = (address) => { address = Buffer.from((0, _rskUtils.remove0x)(address), 'hex'); return (0, _rskUtils.add0x)(address.toString('hex').slice(-40)); }; - const decodeEventName = name => { + const decodeEventName = (name) => { return Buffer.from((0, _rskUtils.remove0x)(name), 'hex').toString('ascii').replace(/\0/g, ''); }; - const removeEmptyStartBytes = d => { + const removeEmptyStartBytes = (d) => { d = !Buffer.isBuffer(d) ? Buffer.from(d, 'hex') : d; - return d.slice(d.findIndex(x => x > 0)); + return d.slice(d.findIndex((x) => x > 0)); }; - const decodeData = data => { + const decodeData = (data) => { let decoded = _rskUtils.rlp.decode(data); if (!Array.isArray(decoded)) decoded = [decoded]; - return decoded.map(d => (0, _rskUtils.add0x)(removeEmptyStartBytes(d).toString('hex'))); + return decoded.map((d) => (0, _rskUtils.add0x)(removeEmptyStartBytes(d).toString('hex'))); }; - const getEventAbi = eventName => fakeAbi.find(a => a.name === eventName && a.type === 'event'); + const getEventAbi = (eventName) => fakeAbi.find((a) => a.name === eventName && a.type === 'event'); const decodeByType = (type, value) => { if (type === 'address') return decodeAddress(value); @@ -39,7 +39,7 @@ function NativeContractsEvents({ bitcoinNetwork } = {}) { return decodeByType(type, value); }; - const removeCustomProperties = obj => { + const removeCustomProperties = (obj) => { const res = Object.assign({}, obj); for (let p in res) { if (p[0] === '_') delete res[p]; @@ -47,14 +47,14 @@ function NativeContractsEvents({ bitcoinNetwork } = {}) { return res; }; - const cleanAbi = abi => { + const cleanAbi = (abi) => { abi = removeCustomProperties(abi); let { inputs } = abi; - if (Array.isArray(inputs)) abi.inputs = inputs.map(input => removeCustomProperties(input)); + if (Array.isArray(inputs)) abi.inputs = inputs.map((input) => removeCustomProperties(input)); return abi; }; - const decodeLog = log => { + const decodeLog = (log) => { let topics = [...log.topics]; let event = decodeEventName(topics.shift()); let abi = getEventAbi(event); @@ -78,6 +78,7 @@ function NativeContractsEvents({ bitcoinNetwork } = {}) { return log; }; return Object.freeze({ decodeLog, abi: fakeAbi }); -}var _default = +}var _default = exports.default = -NativeContractsEvents;exports.default = _default; \ No newline at end of file +NativeContractsEvents; +//# sourceMappingURL=NativeContractsEvents.js.map \ No newline at end of file diff --git a/dist/lib/nativeContracts/NativeContractsEvents.js.map b/dist/lib/nativeContracts/NativeContractsEvents.js.map new file mode 100644 index 0000000..4b8cbb7 --- /dev/null +++ b/dist/lib/nativeContracts/NativeContractsEvents.js.map @@ -0,0 +1 @@ +{"version":3,"file":"NativeContractsEvents.js","names":["_rskUtils","require","_utils","_FakeABI","_interopRequireDefault","obj","__esModule","default","NativeContractsEvents","bitcoinNetwork","network","fakeAbi","FakeAbi","decodeAddress","address","Buffer","from","remove0x","add0x","toString","slice","decodeEventName","name","replace","removeEmptyStartBytes","d","isBuffer","findIndex","x","decodeData","data","decoded","rlp","decode","Array","isArray","map","getEventAbi","eventName","find","a","type","decodeByType","value","decodeInput","input","_filter","removeCustomProperties","res","Object","assign","p","cleanAbi","abi","inputs","decodeLog","log","topics","event","shift","signature","getSignatureDataFromAbi","args","decoder","_decoder","dataDecoded","i","indexed","length","push","freeze","_default","exports"],"sources":["../../../src/lib/nativeContracts/NativeContractsEvents.js"],"sourcesContent":["import { remove0x, add0x, rlp } from '@rsksmart/rsk-utils'\nimport { getSignatureDataFromAbi } from '../utils'\nimport FakeAbi from './FakeABI'\nexport function NativeContractsEvents ({ bitcoinNetwork } = {}) {\n const network = bitcoinNetwork || 'testnet'\n const fakeAbi = FakeAbi(network)\n const decodeAddress = address => {\n address = Buffer.from(remove0x(address), 'hex')\n return add0x(address.toString('hex').slice(-40))\n }\n\n const decodeEventName = name => {\n return Buffer.from(remove0x(name), 'hex').toString('ascii').replace(/\\0/g, '')\n }\n\n const removeEmptyStartBytes = d => {\n d = (!Buffer.isBuffer(d)) ? Buffer.from(d, 'hex') : d\n return d.slice(d.findIndex(x => x > 0))\n }\n\n const decodeData = data => {\n let decoded = rlp.decode(data)\n if (!Array.isArray(decoded)) decoded = [decoded]\n return decoded.map(d => add0x(removeEmptyStartBytes(d).toString('hex')))\n }\n\n const getEventAbi = eventName => fakeAbi.find(a => a.name === eventName && a.type === 'event')\n\n const decodeByType = (type, value) => {\n if (type === 'address') return decodeAddress(value)\n return value\n }\n\n const decodeInput = (input, value) => {\n let { type, _filter } = input\n if (_filter && typeof _filter === 'function') {\n value = _filter(value)\n }\n return decodeByType(type, value)\n }\n\n const removeCustomProperties = obj => {\n const res = Object.assign({}, obj)\n for (let p in res) {\n if (p[0] === '_') delete res[p]\n }\n return res\n }\n\n const cleanAbi = abi => {\n abi = removeCustomProperties(abi)\n let { inputs } = abi\n if (Array.isArray(inputs)) abi.inputs = inputs.map(input => removeCustomProperties(input))\n return abi\n }\n\n const decodeLog = log => {\n let topics = [...log.topics]\n let event = decodeEventName(topics.shift())\n let abi = getEventAbi(event)\n if (event && abi) {\n const { signature } = getSignatureDataFromAbi(abi)\n log.event = event\n log.signature = signature\n log.abi = cleanAbi(abi)\n log.args = []\n const decoder = abi._decoder || decodeData\n let dataDecoded = decoder(log.data)\n if (!Array.isArray(dataDecoded)) dataDecoded = [dataDecoded]\n for (let i in abi.inputs) {\n let input = abi.inputs[i]\n let { indexed } = input\n let value = (indexed === true) ? topics[i] : dataDecoded[i - topics.length]\n let decoded = decodeInput(input, value)\n if (decoded) log.args.push(decoded)\n }\n }\n return log\n }\n return Object.freeze({ decodeLog, abi: fakeAbi })\n}\n\nexport default NativeContractsEvents\n"],"mappings":"0JAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAC,sBAAA,CAAAH,OAAA,eAA+B,SAAAG,uBAAAC,GAAA,UAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AACxB,SAASG,qBAAqBA,CAAE,EAAEC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;EAC9D,MAAMC,OAAO,GAAGD,cAAc,IAAI,SAAS;EAC3C,MAAME,OAAO,GAAG,IAAAC,gBAAO,EAACF,OAAO,CAAC;EAChC,MAAMG,aAAa,GAAGA,CAAAC,OAAO,KAAI;IAC/BA,OAAO,GAAGC,MAAM,CAACC,IAAI,CAAC,IAAAC,kBAAQ,EAACH,OAAO,CAAC,EAAE,KAAK,CAAC;IAC/C,OAAO,IAAAI,eAAK,EAACJ,OAAO,CAACK,QAAQ,CAAC,KAAK,CAAC,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;EAClD,CAAC;;EAED,MAAMC,eAAe,GAAGA,CAAAC,IAAI,KAAI;IAC9B,OAAOP,MAAM,CAACC,IAAI,CAAC,IAAAC,kBAAQ,EAACK,IAAI,CAAC,EAAE,KAAK,CAAC,CAACH,QAAQ,CAAC,OAAO,CAAC,CAACI,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;EAChF,CAAC;;EAED,MAAMC,qBAAqB,GAAGA,CAAAC,CAAC,KAAI;IACjCA,CAAC,GAAI,CAACV,MAAM,CAACW,QAAQ,CAACD,CAAC,CAAC,GAAIV,MAAM,CAACC,IAAI,CAACS,CAAC,EAAE,KAAK,CAAC,GAAGA,CAAC;IACrD,OAAOA,CAAC,CAACL,KAAK,CAACK,CAAC,CAACE,SAAS,CAAC,CAAAC,CAAC,KAAIA,CAAC,GAAG,CAAC,CAAC,CAAC;EACzC,CAAC;;EAED,MAAMC,UAAU,GAAGA,CAAAC,IAAI,KAAI;IACzB,IAAIC,OAAO,GAAGC,aAAG,CAACC,MAAM,CAACH,IAAI,CAAC;IAC9B,IAAI,CAACI,KAAK,CAACC,OAAO,CAACJ,OAAO,CAAC,EAAEA,OAAO,GAAG,CAACA,OAAO,CAAC;IAChD,OAAOA,OAAO,CAACK,GAAG,CAAC,CAAAX,CAAC,KAAI,IAAAP,eAAK,EAACM,qBAAqB,CAACC,CAAC,CAAC,CAACN,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;EAC1E,CAAC;;EAED,MAAMkB,WAAW,GAAGA,CAAAC,SAAS,KAAI3B,OAAO,CAAC4B,IAAI,CAAC,CAAAC,CAAC,KAAIA,CAAC,CAAClB,IAAI,KAAKgB,SAAS,IAAIE,CAAC,CAACC,IAAI,KAAK,OAAO,CAAC;;EAE9F,MAAMC,YAAY,GAAGA,CAACD,IAAI,EAAEE,KAAK,KAAK;IACpC,IAAIF,IAAI,KAAK,SAAS,EAAE,OAAO5B,aAAa,CAAC8B,KAAK,CAAC;IACnD,OAAOA,KAAK;EACd,CAAC;;EAED,MAAMC,WAAW,GAAGA,CAACC,KAAK,EAAEF,KAAK,KAAK;IACpC,IAAI,EAAEF,IAAI,EAAEK,OAAO,CAAC,CAAC,GAAGD,KAAK;IAC7B,IAAIC,OAAO,IAAI,OAAOA,OAAO,KAAK,UAAU,EAAE;MAC5CH,KAAK,GAAGG,OAAO,CAACH,KAAK,CAAC;IACxB;IACA,OAAOD,YAAY,CAACD,IAAI,EAAEE,KAAK,CAAC;EAClC,CAAC;;EAED,MAAMI,sBAAsB,GAAGA,CAAA1C,GAAG,KAAI;IACpC,MAAM2C,GAAG,GAAGC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAE7C,GAAG,CAAC;IAClC,KAAK,IAAI8C,CAAC,IAAIH,GAAG,EAAE;MACjB,IAAIG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,OAAOH,GAAG,CAACG,CAAC,CAAC;IACjC;IACA,OAAOH,GAAG;EACZ,CAAC;;EAED,MAAMI,QAAQ,GAAGA,CAAAC,GAAG,KAAI;IACtBA,GAAG,GAAGN,sBAAsB,CAACM,GAAG,CAAC;IACjC,IAAI,EAAEC,MAAM,CAAC,CAAC,GAAGD,GAAG;IACpB,IAAInB,KAAK,CAACC,OAAO,CAACmB,MAAM,CAAC,EAAED,GAAG,CAACC,MAAM,GAAGA,MAAM,CAAClB,GAAG,CAAC,CAAAS,KAAK,KAAIE,sBAAsB,CAACF,KAAK,CAAC,CAAC;IAC1F,OAAOQ,GAAG;EACZ,CAAC;;EAED,MAAME,SAAS,GAAGA,CAAAC,GAAG,KAAI;IACvB,IAAIC,MAAM,GAAG,CAAC,GAAGD,GAAG,CAACC,MAAM,CAAC;IAC5B,IAAIC,KAAK,GAAGrC,eAAe,CAACoC,MAAM,CAACE,KAAK,CAAC,CAAC,CAAC;IAC3C,IAAIN,GAAG,GAAGhB,WAAW,CAACqB,KAAK,CAAC;IAC5B,IAAIA,KAAK,IAAIL,GAAG,EAAE;MAChB,MAAM,EAAEO,SAAS,CAAC,CAAC,GAAG,IAAAC,8BAAuB,EAACR,GAAG,CAAC;MAClDG,GAAG,CAACE,KAAK,GAAGA,KAAK;MACjBF,GAAG,CAACI,SAAS,GAAGA,SAAS;MACzBJ,GAAG,CAACH,GAAG,GAAGD,QAAQ,CAACC,GAAG,CAAC;MACvBG,GAAG,CAACM,IAAI,GAAG,EAAE;MACb,MAAMC,OAAO,GAAGV,GAAG,CAACW,QAAQ,IAAInC,UAAU;MAC1C,IAAIoC,WAAW,GAAGF,OAAO,CAACP,GAAG,CAAC1B,IAAI,CAAC;MACnC,IAAI,CAACI,KAAK,CAACC,OAAO,CAAC8B,WAAW,CAAC,EAAEA,WAAW,GAAG,CAACA,WAAW,CAAC;MAC5D,KAAK,IAAIC,CAAC,IAAIb,GAAG,CAACC,MAAM,EAAE;QACxB,IAAIT,KAAK,GAAGQ,GAAG,CAACC,MAAM,CAACY,CAAC,CAAC;QACzB,IAAI,EAAEC,OAAO,CAAC,CAAC,GAAGtB,KAAK;QACvB,IAAIF,KAAK,GAAIwB,OAAO,KAAK,IAAI,GAAIV,MAAM,CAACS,CAAC,CAAC,GAAGD,WAAW,CAACC,CAAC,GAAGT,MAAM,CAACW,MAAM,CAAC;QAC3E,IAAIrC,OAAO,GAAGa,WAAW,CAACC,KAAK,EAAEF,KAAK,CAAC;QACvC,IAAIZ,OAAO,EAAEyB,GAAG,CAACM,IAAI,CAACO,IAAI,CAACtC,OAAO,CAAC;MACrC;IACF;IACA,OAAOyB,GAAG;EACZ,CAAC;EACD,OAAOP,MAAM,CAACqB,MAAM,CAAC,EAAEf,SAAS,EAAEF,GAAG,EAAE1C,OAAO,CAAC,CAAC,CAAC;AACnD,CAAC,IAAA4D,QAAA,GAAAC,OAAA,CAAAjE,OAAA;;AAEcC,qBAAqB"} \ No newline at end of file diff --git a/dist/lib/nativeContracts/bridgeAbi.js b/dist/lib/nativeContracts/bridgeAbi.js index dea334b..318fb54 100644 --- a/dist/lib/nativeContracts/bridgeAbi.js +++ b/dist/lib/nativeContracts/bridgeAbi.js @@ -1,11 +1,11 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.getBridgeAbi = getBridgeAbi;exports.RELEASES = void 0;var _bridgeOrchid = _interopRequireDefault(require("./bridge-orchid.json")); +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.RELEASES = void 0;exports.getBridgeAbi = getBridgeAbi;var _bridgeOrchid = _interopRequireDefault(require("./bridge-orchid.json")); var _bridgeWasabi = _interopRequireDefault(require("./bridge-wasabi.json")); var _bridgePapyrus = _interopRequireDefault(require("./bridge-papyrus.json")); var _bridgeIris = _interopRequireDefault(require("./bridge-iris.json")); var _bridgeFingerroot = _interopRequireDefault(require("./bridge-fingerroot.json")); var _bridgeHop = _interopRequireDefault(require("./bridge-hop.json"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} -const RELEASES = { +const RELEASES = exports.RELEASES = { mainnet: [ { height: 0, abi: _bridgeOrchid.default }, { height: 1591000, abi: _bridgeWasabi.default }, @@ -19,9 +19,9 @@ const RELEASES = { { height: 863000, abi: _bridgePapyrus.default }, { height: 2060500, abi: _bridgeIris.default }, { height: 3103000, abi: _bridgeHop.default }, - { height: 4015800, abi: _bridgeFingerroot.default }] };exports.RELEASES = RELEASES; - + { height: 4015800, abi: _bridgeFingerroot.default }] +}; function findmatchingAbi(txHeight, abisWithHeight) { const lastIndex = abisWithHeight.length - 1; @@ -44,4 +44,5 @@ function getBridgeAbi({ txBlockNumber, bitcoinNetwork }) { } return findmatchingAbi(txBlockNumber, RELEASES[bitcoinNetwork]); -} \ No newline at end of file +} +//# sourceMappingURL=bridgeAbi.js.map \ No newline at end of file diff --git a/dist/lib/nativeContracts/bridgeAbi.js.map b/dist/lib/nativeContracts/bridgeAbi.js.map new file mode 100644 index 0000000..b4d8c81 --- /dev/null +++ b/dist/lib/nativeContracts/bridgeAbi.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bridgeAbi.js","names":["_bridgeOrchid","_interopRequireDefault","require","_bridgeWasabi","_bridgePapyrus","_bridgeIris","_bridgeFingerroot","_bridgeHop","obj","__esModule","default","RELEASES","exports","mainnet","height","abi","orchid","wasabi","papyrus","iris","hop","fingerroot","testnet","findmatchingAbi","txHeight","abisWithHeight","lastIndex","length","undefined","i","previous","getBridgeAbi","txBlockNumber","bitcoinNetwork","includes","Error"],"sources":["../../../src/lib/nativeContracts/bridgeAbi.js"],"sourcesContent":["import orchid from './bridge-orchid.json'\nimport wasabi from './bridge-wasabi.json'\nimport papyrus from './bridge-papyrus.json'\nimport iris from './bridge-iris.json'\nimport fingerroot from './bridge-fingerroot.json'\nimport hop from './bridge-hop.json'\n\nexport const RELEASES = {\n mainnet: [\n { height: 0, abi: orchid },\n { height: 1591000, abi: wasabi },\n { height: 2392700, abi: papyrus },\n { height: 3614800, abi: iris },\n { height: 4598500, abi: hop },\n { height: 5468000, abi: fingerroot }\n ],\n testnet: [\n { height: 0, abi: wasabi },\n { height: 863000, abi: papyrus },\n { height: 2060500, abi: iris },\n { height: 3103000, abi: hop },\n { height: 4015800, abi: fingerroot }\n ]\n}\n\nfunction findmatchingAbi (txHeight, abisWithHeight) {\n const lastIndex = abisWithHeight.length - 1\n\n if (txHeight >= abisWithHeight[lastIndex].height || txHeight === undefined) {\n return abisWithHeight[lastIndex].abi\n }\n\n for (let i = 1; i <= lastIndex; i++) {\n const previous = abisWithHeight[i - 1]\n if (txHeight >= previous.height && txHeight < abisWithHeight[i].height) {\n return previous.abi\n }\n }\n}\n\nexport function getBridgeAbi ({ txBlockNumber, bitcoinNetwork }) {\n if (!['testnet', 'mainnet'].includes(bitcoinNetwork)) {\n throw new Error('Invalid bitcoin network')\n }\n\n return findmatchingAbi(txBlockNumber, RELEASES[bitcoinNetwork])\n}\n"],"mappings":"yIAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,cAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,WAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,iBAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,UAAA,GAAAN,sBAAA,CAAAC,OAAA,uBAAmC,SAAAD,uBAAAO,GAAA,UAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;;AAE5B,MAAMG,QAAQ,GAAAC,OAAA,CAAAD,QAAA,GAAG;EACtBE,OAAO,EAAE;EACP,EAAEC,MAAM,EAAE,CAAC,EAAEC,GAAG,EAAEC,qBAAM,CAAC,CAAC;EAC1B,EAAEF,MAAM,EAAE,OAAO,EAAEC,GAAG,EAAEE,qBAAM,CAAC,CAAC;EAChC,EAAEH,MAAM,EAAE,OAAO,EAAEC,GAAG,EAAEG,sBAAO,CAAC,CAAC;EACjC,EAAEJ,MAAM,EAAE,OAAO,EAAEC,GAAG,EAAEI,mBAAI,CAAC,CAAC;EAC9B,EAAEL,MAAM,EAAE,OAAO,EAAEC,GAAG,EAAEK,kBAAG,CAAC,CAAC;EAC7B,EAAEN,MAAM,EAAE,OAAO,EAAEC,GAAG,EAAEM,yBAAU,CAAC,CAAC,CACrC;;EACDC,OAAO,EAAE;EACP,EAAER,MAAM,EAAE,CAAC,EAAEC,GAAG,EAAEE,qBAAM,CAAC,CAAC;EAC1B,EAAEH,MAAM,EAAE,MAAM,EAAEC,GAAG,EAAEG,sBAAO,CAAC,CAAC;EAChC,EAAEJ,MAAM,EAAE,OAAO,EAAEC,GAAG,EAAEI,mBAAI,CAAC,CAAC;EAC9B,EAAEL,MAAM,EAAE,OAAO,EAAEC,GAAG,EAAEK,kBAAG,CAAC,CAAC;EAC7B,EAAEN,MAAM,EAAE,OAAO,EAAEC,GAAG,EAAEM,yBAAU,CAAC,CAAC;;AAExC,CAAC;;AAED,SAASE,eAAeA,CAAEC,QAAQ,EAAEC,cAAc,EAAE;EAClD,MAAMC,SAAS,GAAGD,cAAc,CAACE,MAAM,GAAG,CAAC;;EAE3C,IAAIH,QAAQ,IAAIC,cAAc,CAACC,SAAS,CAAC,CAACZ,MAAM,IAAIU,QAAQ,KAAKI,SAAS,EAAE;IAC1E,OAAOH,cAAc,CAACC,SAAS,CAAC,CAACX,GAAG;EACtC;;EAEA,KAAK,IAAIc,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAIH,SAAS,EAAEG,CAAC,EAAE,EAAE;IACnC,MAAMC,QAAQ,GAAGL,cAAc,CAACI,CAAC,GAAG,CAAC,CAAC;IACtC,IAAIL,QAAQ,IAAIM,QAAQ,CAAChB,MAAM,IAAIU,QAAQ,GAAGC,cAAc,CAACI,CAAC,CAAC,CAACf,MAAM,EAAE;MACtE,OAAOgB,QAAQ,CAACf,GAAG;IACrB;EACF;AACF;;AAEO,SAASgB,YAAYA,CAAE,EAAEC,aAAa,EAAEC,cAAc,CAAC,CAAC,EAAE;EAC/D,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAACC,QAAQ,CAACD,cAAc,CAAC,EAAE;IACpD,MAAM,IAAIE,KAAK,CAAC,yBAAyB,CAAC;EAC5C;;EAEA,OAAOZ,eAAe,CAACS,aAAa,EAAErB,QAAQ,CAACsB,cAAc,CAAC,CAAC;AACjE"} \ No newline at end of file diff --git a/dist/lib/nod3Connect.js b/dist/lib/nod3Connect.js index 31fb4e3..71b112b 100755 --- a/dist/lib/nod3Connect.js +++ b/dist/lib/nod3Connect.js @@ -1,10 +1,11 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = exports.nod3Connect = void 0;var _nod = _interopRequireDefault(require("@rsksmart/nod3"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.nod3Connect = exports.default = void 0;var _nod = _interopRequireDefault(require("@rsksmart/nod3"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} -const nod3Connect = url => { +const nod3Connect = (url) => { url = url || process.env['RSK_NODE_URL'] || 'http://localhost:4444'; return new _nod.default( - new _nod.default.providers.HttpProvider(url)); + new _nod.default.providers.HttpProvider(url) + ); +};exports.nod3Connect = nod3Connect;var _default = exports.default = -};exports.nod3Connect = nod3Connect;var _default = - -nod3Connect();exports.default = _default; \ No newline at end of file +nod3Connect(); +//# sourceMappingURL=nod3Connect.js.map \ No newline at end of file diff --git a/dist/lib/nod3Connect.js.map b/dist/lib/nod3Connect.js.map new file mode 100644 index 0000000..d7c8fb2 --- /dev/null +++ b/dist/lib/nod3Connect.js.map @@ -0,0 +1 @@ +{"version":3,"file":"nod3Connect.js","names":["_nod","_interopRequireDefault","require","obj","__esModule","default","nod3Connect","url","process","env","Nod3","providers","HttpProvider","exports","_default"],"sources":["../../src/lib/nod3Connect.js"],"sourcesContent":["import Nod3 from '@rsksmart/nod3'\n\nexport const nod3Connect = (url) => {\n url = url || process.env['RSK_NODE_URL'] || 'http://localhost:4444'\n return new Nod3(\n new Nod3.providers.HttpProvider(url)\n )\n}\n\nexport default nod3Connect()\n"],"mappings":"0HAAA,IAAAA,IAAA,GAAAC,sBAAA,CAAAC,OAAA,oBAAiC,SAAAD,uBAAAE,GAAA,UAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;;AAE1B,MAAMG,WAAW,GAAGA,CAACC,GAAG,KAAK;EAClCA,GAAG,GAAGA,GAAG,IAAIC,OAAO,CAACC,GAAG,CAAC,cAAc,CAAC,IAAI,uBAAuB;EACnE,OAAO,IAAIC,YAAI;IACb,IAAIA,YAAI,CAACC,SAAS,CAACC,YAAY,CAACL,GAAG;EACrC,CAAC;AACH,CAAC,CAAAM,OAAA,CAAAP,WAAA,GAAAA,WAAA,KAAAQ,QAAA,GAAAD,OAAA,CAAAR,OAAA;;AAEcC,WAAW,CAAC,CAAC"} \ No newline at end of file diff --git a/dist/lib/types.js b/dist/lib/types.js index a53b168..4b3983e 100755 --- a/dist/lib/types.js +++ b/dist/lib/types.js @@ -1,29 +1,30 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.tokensInterfaces = exports.contractsInterfaces = exports.bitcoinRskNetWorks = exports.bitcoinNetworks = exports.INTERFACE_ID_BYTES = exports.ABI_SIGNATURE = void 0;const ABI_SIGNATURE = '__signatureData';exports.ABI_SIGNATURE = ABI_SIGNATURE; +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.tokensInterfaces = exports.contractsInterfaces = exports.bitcoinRskNetWorks = exports.bitcoinNetworks = exports.INTERFACE_ID_BYTES = exports.ABI_SIGNATURE = void 0;const ABI_SIGNATURE = exports.ABI_SIGNATURE = '__signatureData'; -const INTERFACE_ID_BYTES = 4;exports.INTERFACE_ID_BYTES = INTERFACE_ID_BYTES; +const INTERFACE_ID_BYTES = exports.INTERFACE_ID_BYTES = 4; -const bitcoinNetworks = { +const bitcoinNetworks = exports.bitcoinNetworks = { TESTNET: 'testnet', MAINNET: 'mainnet', - REGTEST: 'regtest' };exports.bitcoinNetworks = bitcoinNetworks; + REGTEST: 'regtest' +}; - -const bitcoinRskNetWorks = { +const bitcoinRskNetWorks = exports.bitcoinRskNetWorks = { 31: bitcoinNetworks.TESTNET, 30: bitcoinNetworks.MAINNET, - 33: bitcoinNetworks.REGTEST };exports.bitcoinRskNetWorks = bitcoinRskNetWorks; - + 33: bitcoinNetworks.REGTEST +}; -const contractsInterfaces = { +const contractsInterfaces = exports.contractsInterfaces = { ERC20: 'ERC20', ERC677: 'ERC677', ERC165: 'ERC165', - ERC721: 'ERC721' };exports.contractsInterfaces = contractsInterfaces; - + ERC721: 'ERC721' +}; const ci = contractsInterfaces; -const tokensInterfaces = [ +const tokensInterfaces = exports.tokensInterfaces = [ ci.ERC20, ci.ERC677, -ci.ERC721];exports.tokensInterfaces = tokensInterfaces; \ No newline at end of file +ci.ERC721]; +//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/dist/lib/types.js.map b/dist/lib/types.js.map new file mode 100644 index 0000000..78b42a6 --- /dev/null +++ b/dist/lib/types.js.map @@ -0,0 +1 @@ +{"version":3,"file":"types.js","names":["ABI_SIGNATURE","exports","INTERFACE_ID_BYTES","bitcoinNetworks","TESTNET","MAINNET","REGTEST","bitcoinRskNetWorks","contractsInterfaces","ERC20","ERC677","ERC165","ERC721","ci","tokensInterfaces"],"sources":["../../src/lib/types.js"],"sourcesContent":["export const ABI_SIGNATURE = '__signatureData'\n\nexport const INTERFACE_ID_BYTES = 4\n\nexport const bitcoinNetworks = {\n TESTNET: 'testnet',\n MAINNET: 'mainnet',\n REGTEST: 'regtest'\n}\n\nexport const bitcoinRskNetWorks = {\n 31: bitcoinNetworks.TESTNET,\n 30: bitcoinNetworks.MAINNET,\n 33: bitcoinNetworks.REGTEST\n}\n\nexport const contractsInterfaces = {\n ERC20: 'ERC20',\n ERC677: 'ERC677',\n ERC165: 'ERC165',\n ERC721: 'ERC721'\n}\n\nconst ci = contractsInterfaces\n\nexport const tokensInterfaces = [\n ci.ERC20,\n ci.ERC677,\n ci.ERC721\n]\n"],"mappings":"uPAAO,MAAMA,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,iBAAiB;;AAEvC,MAAME,kBAAkB,GAAAD,OAAA,CAAAC,kBAAA,GAAG,CAAC;;AAE5B,MAAMC,eAAe,GAAAF,OAAA,CAAAE,eAAA,GAAG;EAC7BC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE;AACX,CAAC;;AAEM,MAAMC,kBAAkB,GAAAN,OAAA,CAAAM,kBAAA,GAAG;EAChC,EAAE,EAAEJ,eAAe,CAACC,OAAO;EAC3B,EAAE,EAAED,eAAe,CAACE,OAAO;EAC3B,EAAE,EAAEF,eAAe,CAACG;AACtB,CAAC;;AAEM,MAAME,mBAAmB,GAAAP,OAAA,CAAAO,mBAAA,GAAG;EACjCC,KAAK,EAAE,OAAO;EACdC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE;AACV,CAAC;;AAED,MAAMC,EAAE,GAAGL,mBAAmB;;AAEvB,MAAMM,gBAAgB,GAAAb,OAAA,CAAAa,gBAAA,GAAG;AAC9BD,EAAE,CAACJ,KAAK;AACRI,EAAE,CAACH,MAAM;AACTG,EAAE,CAACD,MAAM,CACV"} \ No newline at end of file diff --git a/dist/lib/utils.js b/dist/lib/utils.js index f850881..c07b330 100755 --- a/dist/lib/utils.js +++ b/dist/lib/utils.js @@ -1,38 +1,38 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.filterEvents = filterEvents;exports.binarySearchNumber = binarySearchNumber;exports.getSignatureDataFromAbi = exports.erc165IdFromMethods = exports.erc165Id = exports.addSignatureDataToAbi = exports.abiSignatureData = exports.getInputsIndexes = exports.removeAbiSignatureData = exports.solidityName = exports.soliditySelector = exports.soliditySignature = exports.abiMethods = exports.abiEvents = exports.setAbi = void 0;var _rskUtils = require("@rsksmart/rsk-utils"); +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.addSignatureDataToAbi = exports.abiSignatureData = exports.abiMethods = exports.abiEvents = void 0;exports.binarySearchNumber = binarySearchNumber;exports.erc165IdFromMethods = exports.erc165Id = void 0;exports.filterEvents = filterEvents;exports.soliditySignature = exports.soliditySelector = exports.solidityName = exports.setAbi = exports.removeAbiSignatureData = exports.getSignatureDataFromAbi = exports.getInputsIndexes = void 0;var _rskUtils = require("@rsksmart/rsk-utils"); var _types = require("./types"); -const setAbi = abi => addSignatureDataToAbi(abi, true);exports.setAbi = setAbi; +const setAbi = (abi) => addSignatureDataToAbi(abi, true);exports.setAbi = setAbi; -const abiEvents = abi => abi.filter(v => v.type === 'event');exports.abiEvents = abiEvents; +const abiEvents = (abi) => abi.filter((v) => v.type === 'event');exports.abiEvents = abiEvents; -const abiMethods = abi => abi.filter(v => v.type === 'function');exports.abiMethods = abiMethods; +const abiMethods = (abi) => abi.filter((v) => v.type === 'function');exports.abiMethods = abiMethods; -const soliditySignature = name => (0, _rskUtils.keccak256)(name);exports.soliditySignature = soliditySignature; +const soliditySignature = (name) => (0, _rskUtils.keccak256)(name);exports.soliditySignature = soliditySignature; -const soliditySelector = signature => signature.slice(0, 8);exports.soliditySelector = soliditySelector; +const soliditySelector = (signature) => signature.slice(0, 8);exports.soliditySelector = soliditySelector; -const solidityName = abi => { +const solidityName = (abi) => { let { name, inputs } = abi; - inputs = inputs ? inputs.map(i => i.type) : []; + inputs = inputs ? inputs.map((i) => i.type) : []; return name ? `${name}(${inputs.join(',')})` : null; };exports.solidityName = solidityName; -const removeAbiSignatureData = abi => { +const removeAbiSignatureData = (abi) => { abi = Object.assign({}, abi); if (undefined !== abi[_types.ABI_SIGNATURE]) delete abi[_types.ABI_SIGNATURE]; return abi; };exports.removeAbiSignatureData = removeAbiSignatureData; -const getInputsIndexes = abi => { +const getInputsIndexes = (abi) => { let { inputs } = abi; - return inputs && abi.type === 'event' ? inputs.map(i => i.indexed) : []; + return inputs && abi.type === 'event' ? inputs.map((i) => i.indexed) : []; };exports.getInputsIndexes = getInputsIndexes; -const abiSignatureData = abi => { +const abiSignatureData = (abi) => { let method = solidityName(abi); let signature = method ? soliditySignature(method) : null; let index = getInputsIndexes(abi); - let indexed = index ? index.filter(i => i === true).length : 0; + let indexed = index ? index.filter((i) => i === true).length : 0; let eventSignature = null; if (method && abi.type === 'event') { eventSignature = soliditySignature(`${method}${Buffer.from(index).toString('hex')}`); @@ -49,8 +49,8 @@ const addSignatureDataToAbi = (abi, skip) => { return abi; };exports.addSignatureDataToAbi = addSignatureDataToAbi; -const erc165Id = selectors => { - let id = selectors.map(s => Buffer.from(s, 'hex')). +const erc165Id = (selectors) => { + let id = selectors.map((s) => Buffer.from(s, 'hex')). reduce((a, bytes) => { for (let i = 0; i < _types.INTERFACE_ID_BYTES; i++) { a[i] = a[i] ^ bytes[i]; @@ -60,29 +60,29 @@ const erc165Id = selectors => { return (0, _rskUtils.add0x)(id.toString('hex')); };exports.erc165Id = erc165Id; -const erc165IdFromMethods = methods => { - return erc165Id(methods.map(m => soliditySelector(soliditySignature(m)))); +const erc165IdFromMethods = (methods) => { + return erc165Id(methods.map((m) => soliditySelector(soliditySignature(m)))); };exports.erc165IdFromMethods = erc165IdFromMethods; -const getSignatureDataFromAbi = abi => { +const getSignatureDataFromAbi = (abi) => { return abi[_types.ABI_SIGNATURE]; };exports.getSignatureDataFromAbi = getSignatureDataFromAbi; function filterEvents(abi) { const type = 'event'; // get events from ABI - let events = abi.filter(a => a.type === type); + let events = abi.filter((a) => a.type === type); // remove events from ABI - abi = abi.filter(a => a.type !== type); - let keys = [...new Set(events.map(e => e[_types.ABI_SIGNATURE].eventSignature))]; - events = keys.map(k => events.find(e => e[_types.ABI_SIGNATURE].eventSignature === k)); + abi = abi.filter((a) => a.type !== type); + let keys = [...new Set(events.map((e) => e[_types.ABI_SIGNATURE].eventSignature))]; + events = keys.map((k) => events.find((e) => e[_types.ABI_SIGNATURE].eventSignature === k)); abi = abi.concat(events); return abi; } function filterArr(a) { if (!Array.isArray(a)) return a; - return a.find(x => filterArr(x)); + return a.find((x) => filterArr(x)); } async function binarySearchNumber(searchCb, high, low) { @@ -90,7 +90,7 @@ async function binarySearchNumber(searchCb, high, low) { high = parseInt(high || 0); low = parseInt(low || 0); if (typeof searchCb !== 'function') throw new Error('SeachCb must be a function'); - let [l, h] = await Promise.all([low, high].map(b => searchCb(b))); + let [l, h] = await Promise.all([low, high].map((b) => searchCb(b))); if (l !== h) { if (high === low + 1) { return high; @@ -105,4 +105,5 @@ async function binarySearchNumber(searchCb, high, low) { } catch (err) { return Promise.reject(err); } -} \ No newline at end of file +} +//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/dist/lib/utils.js.map b/dist/lib/utils.js.map new file mode 100644 index 0000000..c710fd0 --- /dev/null +++ b/dist/lib/utils.js.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.js","names":["_rskUtils","require","_types","setAbi","abi","addSignatureDataToAbi","exports","abiEvents","filter","v","type","abiMethods","soliditySignature","name","keccak256","soliditySelector","signature","slice","solidityName","inputs","map","i","join","removeAbiSignatureData","Object","assign","undefined","ABI_SIGNATURE","getInputsIndexes","indexed","abiSignatureData","method","index","length","eventSignature","Buffer","from","toString","skip","value","erc165Id","selectors","id","s","reduce","a","bytes","INTERFACE_ID_BYTES","alloc","add0x","erc165IdFromMethods","methods","m","getSignatureDataFromAbi","filterEvents","events","keys","Set","e","k","find","concat","filterArr","Array","isArray","x","binarySearchNumber","searchCb","high","low","parseInt","Error","l","h","Promise","all","b","mid","Math","floor","res","err","reject"],"sources":["../../src/lib/utils.js"],"sourcesContent":["import { keccak256, add0x } from '@rsksmart/rsk-utils'\nimport { ABI_SIGNATURE, INTERFACE_ID_BYTES } from './types'\n\nexport const setAbi = abi => addSignatureDataToAbi(abi, true)\n\nexport const abiEvents = abi => abi.filter(v => v.type === 'event')\n\nexport const abiMethods = abi => abi.filter(v => v.type === 'function')\n\nexport const soliditySignature = name => keccak256(name)\n\nexport const soliditySelector = signature => signature.slice(0, 8)\n\nexport const solidityName = abi => {\n let { name, inputs } = abi\n inputs = (inputs) ? inputs.map(i => i.type) : []\n return (name) ? `${name}(${inputs.join(',')})` : null\n}\n\nexport const removeAbiSignatureData = (abi) => {\n abi = Object.assign({}, abi)\n if (undefined !== abi[ABI_SIGNATURE]) delete abi[ABI_SIGNATURE]\n return abi\n}\n\nexport const getInputsIndexes = abi => {\n let { inputs } = abi\n return (inputs && abi.type === 'event') ? inputs.map(i => i.indexed) : []\n}\n\nexport const abiSignatureData = abi => {\n let method = solidityName(abi)\n let signature = (method) ? soliditySignature(method) : null\n let index = getInputsIndexes(abi)\n let indexed = (index) ? index.filter(i => i === true).length : 0\n let eventSignature = null\n if ((method && abi.type === 'event')) {\n eventSignature = soliditySignature(`${method}${Buffer.from(index).toString('hex')}`)\n }\n return { method, signature, index, indexed, eventSignature }\n}\n\nexport const addSignatureDataToAbi = (abi, skip) => {\n abi.map((value, i) => {\n if (!value[ABI_SIGNATURE] || !skip) {\n value[ABI_SIGNATURE] = abiSignatureData(value)\n }\n })\n return abi\n}\n\nexport const erc165Id = selectors => {\n let id = selectors.map(s => Buffer.from(s, 'hex'))\n .reduce((a, bytes) => {\n for (let i = 0; i < INTERFACE_ID_BYTES; i++) {\n a[i] = a[i] ^ bytes[i]\n }\n return a\n }, Buffer.alloc(INTERFACE_ID_BYTES))\n return add0x(id.toString('hex'))\n}\n\nexport const erc165IdFromMethods = methods => {\n return erc165Id(methods.map(m => soliditySelector(soliditySignature(m))))\n}\n\nexport const getSignatureDataFromAbi = abi => {\n return abi[ABI_SIGNATURE]\n}\n\nexport function filterEvents (abi) {\n const type = 'event'\n // get events from ABI\n let events = abi.filter(a => a.type === type)\n // remove events from ABI\n abi = abi.filter(a => a.type !== type)\n let keys = [...new Set(events.map(e => e[ABI_SIGNATURE].eventSignature))]\n events = keys.map(k => events.find(e => e[ABI_SIGNATURE].eventSignature === k))\n abi = abi.concat(events)\n return abi\n}\n\nfunction filterArr (a) {\n if (!Array.isArray(a)) return a\n return a.find(x => filterArr(x))\n}\n\nexport async function binarySearchNumber (searchCb, high, low) {\n try {\n high = parseInt(high || 0)\n low = parseInt(low || 0)\n if (typeof searchCb !== 'function') throw new Error('SeachCb must be a function')\n let [l, h] = await Promise.all([low, high].map(b => searchCb(b)))\n if (l !== h) {\n if (high === low + 1) {\n return high\n } else {\n let mid = Math.floor(high / 2 + low / 2)\n let res = await Promise.all([\n binarySearchNumber(searchCb, high, mid),\n binarySearchNumber(searchCb, mid, low)])\n return filterArr(res)\n }\n }\n } catch (err) {\n return Promise.reject(err)\n }\n}\n"],"mappings":"sgBAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;;AAEO,MAAME,MAAM,GAAGA,CAAAC,GAAG,KAAIC,qBAAqB,CAACD,GAAG,EAAE,IAAI,CAAC,CAAAE,OAAA,CAAAH,MAAA,GAAAA,MAAA;;AAEtD,MAAMI,SAAS,GAAGA,CAAAH,GAAG,KAAIA,GAAG,CAACI,MAAM,CAAC,CAAAC,CAAC,KAAIA,CAAC,CAACC,IAAI,KAAK,OAAO,CAAC,CAAAJ,OAAA,CAAAC,SAAA,GAAAA,SAAA;;AAE5D,MAAMI,UAAU,GAAGA,CAAAP,GAAG,KAAIA,GAAG,CAACI,MAAM,CAAC,CAAAC,CAAC,KAAIA,CAAC,CAACC,IAAI,KAAK,UAAU,CAAC,CAAAJ,OAAA,CAAAK,UAAA,GAAAA,UAAA;;AAEhE,MAAMC,iBAAiB,GAAGA,CAAAC,IAAI,KAAI,IAAAC,mBAAS,EAACD,IAAI,CAAC,CAAAP,OAAA,CAAAM,iBAAA,GAAAA,iBAAA;;AAEjD,MAAMG,gBAAgB,GAAGA,CAAAC,SAAS,KAAIA,SAAS,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAAX,OAAA,CAAAS,gBAAA,GAAAA,gBAAA;;AAE3D,MAAMG,YAAY,GAAGA,CAAAd,GAAG,KAAI;EACjC,IAAI,EAAES,IAAI,EAAEM,MAAM,CAAC,CAAC,GAAGf,GAAG;EAC1Be,MAAM,GAAIA,MAAM,GAAIA,MAAM,CAACC,GAAG,CAAC,CAAAC,CAAC,KAAIA,CAAC,CAACX,IAAI,CAAC,GAAG,EAAE;EAChD,OAAQG,IAAI,GAAK,GAAEA,IAAK,IAAGM,MAAM,CAACG,IAAI,CAAC,GAAG,CAAE,GAAE,GAAG,IAAI;AACvD,CAAC,CAAAhB,OAAA,CAAAY,YAAA,GAAAA,YAAA;;AAEM,MAAMK,sBAAsB,GAAGA,CAACnB,GAAG,KAAK;EAC7CA,GAAG,GAAGoB,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAErB,GAAG,CAAC;EAC5B,IAAIsB,SAAS,KAAKtB,GAAG,CAACuB,oBAAa,CAAC,EAAE,OAAOvB,GAAG,CAACuB,oBAAa,CAAC;EAC/D,OAAOvB,GAAG;AACZ,CAAC,CAAAE,OAAA,CAAAiB,sBAAA,GAAAA,sBAAA;;AAEM,MAAMK,gBAAgB,GAAGA,CAAAxB,GAAG,KAAI;EACrC,IAAI,EAAEe,MAAM,CAAC,CAAC,GAAGf,GAAG;EACpB,OAAQe,MAAM,IAAIf,GAAG,CAACM,IAAI,KAAK,OAAO,GAAIS,MAAM,CAACC,GAAG,CAAC,CAAAC,CAAC,KAAIA,CAAC,CAACQ,OAAO,CAAC,GAAG,EAAE;AAC3E,CAAC,CAAAvB,OAAA,CAAAsB,gBAAA,GAAAA,gBAAA;;AAEM,MAAME,gBAAgB,GAAGA,CAAA1B,GAAG,KAAI;EACrC,IAAI2B,MAAM,GAAGb,YAAY,CAACd,GAAG,CAAC;EAC9B,IAAIY,SAAS,GAAIe,MAAM,GAAInB,iBAAiB,CAACmB,MAAM,CAAC,GAAG,IAAI;EAC3D,IAAIC,KAAK,GAAGJ,gBAAgB,CAACxB,GAAG,CAAC;EACjC,IAAIyB,OAAO,GAAIG,KAAK,GAAIA,KAAK,CAACxB,MAAM,CAAC,CAAAa,CAAC,KAAIA,CAAC,KAAK,IAAI,CAAC,CAACY,MAAM,GAAG,CAAC;EAChE,IAAIC,cAAc,GAAG,IAAI;EACzB,IAAKH,MAAM,IAAI3B,GAAG,CAACM,IAAI,KAAK,OAAO,EAAG;IACpCwB,cAAc,GAAGtB,iBAAiB,CAAE,GAAEmB,MAAO,GAAEI,MAAM,CAACC,IAAI,CAACJ,KAAK,CAAC,CAACK,QAAQ,CAAC,KAAK,CAAE,EAAC,CAAC;EACtF;EACA,OAAO,EAAEN,MAAM,EAAEf,SAAS,EAAEgB,KAAK,EAAEH,OAAO,EAAEK,cAAc,CAAC,CAAC;AAC9D,CAAC,CAAA5B,OAAA,CAAAwB,gBAAA,GAAAA,gBAAA;;AAEM,MAAMzB,qBAAqB,GAAGA,CAACD,GAAG,EAAEkC,IAAI,KAAK;EAClDlC,GAAG,CAACgB,GAAG,CAAC,CAACmB,KAAK,EAAElB,CAAC,KAAK;IACpB,IAAI,CAACkB,KAAK,CAACZ,oBAAa,CAAC,IAAI,CAACW,IAAI,EAAE;MAClCC,KAAK,CAACZ,oBAAa,CAAC,GAAGG,gBAAgB,CAACS,KAAK,CAAC;IAChD;EACF,CAAC,CAAC;EACF,OAAOnC,GAAG;AACZ,CAAC,CAAAE,OAAA,CAAAD,qBAAA,GAAAA,qBAAA;;AAEM,MAAMmC,QAAQ,GAAGA,CAAAC,SAAS,KAAI;EACnC,IAAIC,EAAE,GAAGD,SAAS,CAACrB,GAAG,CAAC,CAAAuB,CAAC,KAAIR,MAAM,CAACC,IAAI,CAACO,CAAC,EAAE,KAAK,CAAC,CAAC;EAC/CC,MAAM,CAAC,CAACC,CAAC,EAAEC,KAAK,KAAK;IACpB,KAAK,IAAIzB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG0B,yBAAkB,EAAE1B,CAAC,EAAE,EAAE;MAC3CwB,CAAC,CAACxB,CAAC,CAAC,GAAGwB,CAAC,CAACxB,CAAC,CAAC,GAAGyB,KAAK,CAACzB,CAAC,CAAC;IACxB;IACA,OAAOwB,CAAC;EACV,CAAC,EAAEV,MAAM,CAACa,KAAK,CAACD,yBAAkB,CAAC,CAAC;EACtC,OAAO,IAAAE,eAAK,EAACP,EAAE,CAACL,QAAQ,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC,CAAA/B,OAAA,CAAAkC,QAAA,GAAAA,QAAA;;AAEM,MAAMU,mBAAmB,GAAGA,CAAAC,OAAO,KAAI;EAC5C,OAAOX,QAAQ,CAACW,OAAO,CAAC/B,GAAG,CAAC,CAAAgC,CAAC,KAAIrC,gBAAgB,CAACH,iBAAiB,CAACwC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC,CAAA9C,OAAA,CAAA4C,mBAAA,GAAAA,mBAAA;;AAEM,MAAMG,uBAAuB,GAAGA,CAAAjD,GAAG,KAAI;EAC5C,OAAOA,GAAG,CAACuB,oBAAa,CAAC;AAC3B,CAAC,CAAArB,OAAA,CAAA+C,uBAAA,GAAAA,uBAAA;;AAEM,SAASC,YAAYA,CAAElD,GAAG,EAAE;EACjC,MAAMM,IAAI,GAAG,OAAO;EACpB;EACA,IAAI6C,MAAM,GAAGnD,GAAG,CAACI,MAAM,CAAC,CAAAqC,CAAC,KAAIA,CAAC,CAACnC,IAAI,KAAKA,IAAI,CAAC;EAC7C;EACAN,GAAG,GAAGA,GAAG,CAACI,MAAM,CAAC,CAAAqC,CAAC,KAAIA,CAAC,CAACnC,IAAI,KAAKA,IAAI,CAAC;EACtC,IAAI8C,IAAI,GAAG,CAAC,GAAG,IAAIC,GAAG,CAACF,MAAM,CAACnC,GAAG,CAAC,CAAAsC,CAAC,KAAIA,CAAC,CAAC/B,oBAAa,CAAC,CAACO,cAAc,CAAC,CAAC,CAAC;EACzEqB,MAAM,GAAGC,IAAI,CAACpC,GAAG,CAAC,CAAAuC,CAAC,KAAIJ,MAAM,CAACK,IAAI,CAAC,CAAAF,CAAC,KAAIA,CAAC,CAAC/B,oBAAa,CAAC,CAACO,cAAc,KAAKyB,CAAC,CAAC,CAAC;EAC/EvD,GAAG,GAAGA,GAAG,CAACyD,MAAM,CAACN,MAAM,CAAC;EACxB,OAAOnD,GAAG;AACZ;;AAEA,SAAS0D,SAASA,CAAEjB,CAAC,EAAE;EACrB,IAAI,CAACkB,KAAK,CAACC,OAAO,CAACnB,CAAC,CAAC,EAAE,OAAOA,CAAC;EAC/B,OAAOA,CAAC,CAACe,IAAI,CAAC,CAAAK,CAAC,KAAIH,SAAS,CAACG,CAAC,CAAC,CAAC;AAClC;;AAEO,eAAeC,kBAAkBA,CAAEC,QAAQ,EAAEC,IAAI,EAAEC,GAAG,EAAE;EAC7D,IAAI;IACFD,IAAI,GAAGE,QAAQ,CAACF,IAAI,IAAI,CAAC,CAAC;IAC1BC,GAAG,GAAGC,QAAQ,CAACD,GAAG,IAAI,CAAC,CAAC;IACxB,IAAI,OAAOF,QAAQ,KAAK,UAAU,EAAE,MAAM,IAAII,KAAK,CAAC,4BAA4B,CAAC;IACjF,IAAI,CAACC,CAAC,EAAEC,CAAC,CAAC,GAAG,MAAMC,OAAO,CAACC,GAAG,CAAC,CAACN,GAAG,EAAED,IAAI,CAAC,CAAChD,GAAG,CAAC,CAAAwD,CAAC,KAAIT,QAAQ,CAACS,CAAC,CAAC,CAAC,CAAC;IACjE,IAAIJ,CAAC,KAAKC,CAAC,EAAE;MACX,IAAIL,IAAI,KAAKC,GAAG,GAAG,CAAC,EAAE;QACpB,OAAOD,IAAI;MACb,CAAC,MAAM;QACL,IAAIS,GAAG,GAAGC,IAAI,CAACC,KAAK,CAACX,IAAI,GAAG,CAAC,GAAGC,GAAG,GAAG,CAAC,CAAC;QACxC,IAAIW,GAAG,GAAG,MAAMN,OAAO,CAACC,GAAG,CAAC;QAC1BT,kBAAkB,CAACC,QAAQ,EAAEC,IAAI,EAAES,GAAG,CAAC;QACvCX,kBAAkB,CAACC,QAAQ,EAAEU,GAAG,EAAER,GAAG,CAAC,CAAC,CAAC;QAC1C,OAAOP,SAAS,CAACkB,GAAG,CAAC;MACvB;IACF;EACF,CAAC,CAAC,OAAOC,GAAG,EAAE;IACZ,OAAOP,OAAO,CAACQ,MAAM,CAACD,GAAG,CAAC;EAC5B;AACF"} \ No newline at end of file diff --git a/src/index.js b/src/index.js index 46dcf2a..c91b88f 100644 --- a/src/index.js +++ b/src/index.js @@ -5,3 +5,11 @@ import { getBridgeAbi } from './lib/nativeContracts/bridgeAbi' const abi = { bridge: getBridgeAbi } export { ContractParser, BcSearch, Contract, abi } export default ContractParser + +// HOTFIX: because the dependency @ethersproject/abi:5.7.0 spam the logs with 'duplicate definition' warning, this temporary fix should silence those messages until a newer version of the library fixes the issue +const originalConsoleLog = console.log +console.log = function (message) { + if (!String(message).includes('duplicate definition')) { + originalConsoleLog(message) + } +} From 6580f55015abb7eb5ad322d9f85ac5724962324c Mon Sep 17 00:00:00 2001 From: Nicolas Vargas Date: Mon, 18 Dec 2023 18:58:32 -0300 Subject: [PATCH 30/33] fix: remove spammy logs (no matching event and method reverted) --- dist/examples/getDeployment.js | 3 +- dist/index.js | 9 +- dist/lib/Abi.js | 5 +- dist/lib/BcSearch.js | 15 +- dist/lib/Contract.js | 7 +- dist/lib/ContractParser.js | 38 +- dist/lib/EventDecoder.js | 26 +- dist/lib/btcUtils.js | 27 +- dist/lib/compileJsonAbis.js | 21 +- dist/lib/interfacesIds.js | 31 +- dist/lib/nativeContracts/FakeABI.js | 93 +- dist/lib/nativeContracts/NativeContracts.js | 23 +- .../nativeContracts/NativeContractsDecoder.js | 5 +- .../nativeContracts/NativeContractsEvents.js | 27 +- dist/lib/nativeContracts/bridgeAbi.js | 11 +- dist/lib/nod3Connect.js | 13 +- dist/lib/types.js | 27 +- dist/lib/utils.js | 51 +- package-lock.json | 12574 ++++++---------- package.json | 2 +- src/lib/ContractParser.js | 3 +- src/lib/EventDecoder.js | 5 +- 22 files changed, 4919 insertions(+), 8097 deletions(-) diff --git a/dist/examples/getDeployment.js b/dist/examples/getDeployment.js index a0a7703..bd42546 100644 --- a/dist/examples/getDeployment.js +++ b/dist/examples/getDeployment.js @@ -38,5 +38,4 @@ function help(msg) { console.log(`Set environment variable URL to change node url`); console.log(`Example: export URL=http://localhost:4444`); process.exit(0); -} -//# sourceMappingURL=getDeployment.js.map \ No newline at end of file +} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index 012e0b9..a8f377d 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,16 +1,15 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });Object.defineProperty(exports, "BcSearch", { enumerable: true, get: function () {return _BcSearch.BcSearch;} });Object.defineProperty(exports, "Contract", { enumerable: true, get: function () {return _Contract.default;} });Object.defineProperty(exports, "ContractParser", { enumerable: true, get: function () {return _ContractParser.ContractParser;} });exports.default = exports.abi = void 0;var _ContractParser = require("./lib/ContractParser"); +"use strict";Object.defineProperty(exports, "__esModule", { value: true });Object.defineProperty(exports, "ContractParser", { enumerable: true, get: function () {return _ContractParser.ContractParser;} });Object.defineProperty(exports, "BcSearch", { enumerable: true, get: function () {return _BcSearch.BcSearch;} });Object.defineProperty(exports, "Contract", { enumerable: true, get: function () {return _Contract.default;} });exports.default = exports.abi = void 0;var _ContractParser = require("./lib/ContractParser"); var _BcSearch = require("./lib/BcSearch"); var _Contract = _interopRequireDefault(require("./lib/Contract")); var _bridgeAbi = require("./lib/nativeContracts/bridgeAbi");function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} -const abi = exports.abi = { bridge: _bridgeAbi.getBridgeAbi };var _default = exports.default = +const abi = { bridge: _bridgeAbi.getBridgeAbi };exports.abi = abi;var _default = _ContractParser.ContractParser; // HOTFIX: because the dependency @ethersproject/abi:5.7.0 spam the logs with 'duplicate definition' warning, this temporary fix should silence those messages until a newer version of the library fixes the issue -const originalConsoleLog = console.log; +exports.default = _default;const originalConsoleLog = console.log; console.log = function (message) { if (!String(message).includes('duplicate definition')) { originalConsoleLog(message); } -}; -//# sourceMappingURL=index.js.map \ No newline at end of file +}; \ No newline at end of file diff --git a/dist/lib/Abi.js b/dist/lib/Abi.js index 6ab57d7..8be5623 100755 --- a/dist/lib/Abi.js +++ b/dist/lib/Abi.js @@ -1,3 +1,2 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _compiled_abi = _interopRequireDefault(require("./compiled_abi.json"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}var _default = exports.default = -_compiled_abi.default; -//# sourceMappingURL=Abi.js.map \ No newline at end of file +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _compiled_abi = _interopRequireDefault(require("./compiled_abi.json"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}var _default = +_compiled_abi.default;exports.default = _default; \ No newline at end of file diff --git a/dist/lib/BcSearch.js b/dist/lib/BcSearch.js index 9430283..675b0e5 100644 --- a/dist/lib/BcSearch.js +++ b/dist/lib/BcSearch.js @@ -2,7 +2,7 @@ var _rskUtils = require("@rsksmart/rsk-utils"); function BcSearch(nod3) { - const getBlock = (hashOrNumber) => { + const getBlock = hashOrNumber => { return nod3.eth.getBlock(hashOrNumber); }; @@ -27,7 +27,7 @@ function BcSearch(nod3) { }; const deploymentBlock = (address, highBlock, lowBlock) => { - return block((blockNumber) => isContractAtBlock(address, blockNumber), highBlock, lowBlock); + return block(blockNumber => isContractAtBlock(address, blockNumber), highBlock, lowBlock); }; const searchReceipt = async (transactions, cb) => { for (let tx of transactions) { @@ -44,11 +44,11 @@ function BcSearch(nod3) { try { blockNumber = blockNumber || (await deploymentBlock(address, highBlock)); block = block || (await nod3.eth.getBlock(blockNumber, true)); - let transactions = block.transactions.filter((tx) => !(0, _rskUtils.isAddress)(tx.to)); - let transaction = await searchReceipt(transactions, (receipt) => receipt.contractAddress === address); + let transactions = block.transactions.filter(tx => !(0, _rskUtils.isAddress)(tx.to)); + let transaction = await searchReceipt(transactions, receipt => receipt.contractAddress === address); if (!transaction) {// internal transactions blockTrace = blockTrace || (await nod3.trace.block(block.hash)); - let internalTx = blockTrace.find((trace) => isItxDeployment(address, trace)); + let internalTx = blockTrace.find(trace => isItxDeployment(address, trace)); if (internalTx) transaction = { internalTx }; } if (transaction) transaction.timestamp = block.timestamp; @@ -59,7 +59,6 @@ function BcSearch(nod3) { }; return Object.freeze({ block, deploymentBlock, deploymentTx, isItxDeployment }); -}var _default = exports.default = +}var _default = -BcSearch; -//# sourceMappingURL=BcSearch.js.map \ No newline at end of file +BcSearch;exports.default = _default; \ No newline at end of file diff --git a/dist/lib/Contract.js b/dist/lib/Contract.js index 0cfa450..5fff330 100755 --- a/dist/lib/Contract.js +++ b/dist/lib/Contract.js @@ -4,11 +4,11 @@ function Contract(abi, { address, nod3 } = {}) { if (!abi || typeof abi !== 'object') throw new Error('Invalid abi'); const contractInterface = new _abi.Interface(abi); - const at = (newAddress) => { + const at = newAddress => { address = newAddress; }; - const setNod3 = (nod3Instance) => { + const setNod3 = nod3Instance => { nod3 = nod3Instance; }; @@ -37,5 +37,4 @@ function Contract(abi, { address, nod3 } = {}) { } }; return Object.freeze({ at, setNod3, encodeCall, decodeCall, call }); -} -//# sourceMappingURL=Contract.js.map \ No newline at end of file +} \ No newline at end of file diff --git a/dist/lib/ContractParser.js b/dist/lib/ContractParser.js index b8f4547..ad41850 100755 --- a/dist/lib/ContractParser.js +++ b/dist/lib/ContractParser.js @@ -16,8 +16,8 @@ var _utils = require("./utils");function _interopRequireDefault(obj) {return obj function mapInterfacesToERCs(interfaces) { return Object.keys(interfaces). - filter((k) => interfaces[k] === true). - map((t) => _types.contractsInterfaces[t] || t); + filter(k => interfaces[k] === true). + map(t => _types.contractsInterfaces[t] || t); } function hasMethodSelector(txInputData, selector) { @@ -67,8 +67,8 @@ class ContractParser { getAbiMethods() { let methods = {}; - this.abi.filter((def) => def.type === 'function'). - map((m) => { + this.abi.filter(def => def.type === 'function'). + map(m => { let sig = m[_types.ABI_SIGNATURE] || (0, _utils.abiSignatureData)(m); sig.name = m.name; methods[sig.method] = sig; @@ -77,7 +77,7 @@ class ContractParser { } parseTxLogs(logs, abi) { - return this.decodeLogs(logs, abi).map((event) => { + return this.decodeLogs(logs, abi).map(event => { this.addEventAddresses(event); event.abi = (0, _utils.removeAbiSignatureData)(event.abi); return event; @@ -96,7 +96,7 @@ class ContractParser { if (v.type === 'address[]') { let value = args[i] || []; if (Array.isArray(value)) {// temp fix to undecoded events - value.forEach((v) => _addresses.push(v)); + value.forEach(v => _addresses.push(v)); } else { let i = 0; while (2 + (i + 1) * 40 <= value.length) { @@ -119,7 +119,7 @@ class ContractParser { } const { isNativeContract } = this.nativeContracts; const { nativeContractsEvents } = this; - return logs.map((log) => { + return logs.map(log => { const { address } = log; const decoder = isNativeContract(address) ? nativeContractsEvents.getEventDecoder(log) : eventDecoder; return decoder.decodeLog(log); @@ -137,7 +137,8 @@ class ContractParser { const res = await contract.call(method, params, options); return res; } catch (err) { - this.log.warn(`Method ${method} call ${err}`); + // temporary fix to avoid errored contract calls spam logs + // this.log.warn(`Method ${method} call ${err}`) return null; } } @@ -145,11 +146,11 @@ class ContractParser { async getTokenData(contract, { methods } = {}) { methods = methods || ['name', 'symbol', 'decimals', 'totalSupply']; let result = await Promise.all( - methods.map((m) => - this.call(m, contract). - then((res) => res). - catch((err) => this.log.debug(`[${contract.address}] Error executing ${m} Error: ${err}`))) - ); + methods.map((m) => + this.call(m, contract). + then(res => res). + catch(err => this.log.debug(`[${contract.address}] Error executing ${m} Error: ${err}`)))); + return result.reduce((v, a, i) => { let name = methods[i]; v[name] = a; @@ -160,7 +161,7 @@ class ContractParser { getMethodsBySelectors(txInputData) { let methods = this.getMethodsSelectors(); return Object.keys(methods). - filter((method) => hasMethodSelector(txInputData, methods[method]) === true); + filter(method => hasMethodSelector(txInputData, methods[method]) === true); } async getContractInfo(txInputData, contract) { @@ -230,7 +231,7 @@ class ContractParser { getInterfacesByMethods(methods, isErc165) { return Object.keys(_interfacesIds.default). - map((i) => { + map(i => { return [i, (0, _rskUtils.includesAll)(methods, _interfacesIds.default[i].methods)]; }). reduce((obj, value) => { @@ -257,8 +258,7 @@ class ContractParser { } catch (err) { return Promise.reject(err); } - } -}exports.ContractParser = ContractParser;var _default = exports.default = + }}exports.ContractParser = ContractParser;var _default = + -ContractParser; -//# sourceMappingURL=ContractParser.js.map \ No newline at end of file +ContractParser;exports.default = _default; \ No newline at end of file diff --git a/dist/lib/EventDecoder.js b/dist/lib/EventDecoder.js index add61d1..4293ecc 100755 --- a/dist/lib/EventDecoder.js +++ b/dist/lib/EventDecoder.js @@ -5,10 +5,10 @@ var _abi = require("@ethersproject/abi"); function EventDecoder(abi, logger) { const contractInterface = new _abi.Interface((0, _utils.addSignatureDataToAbi)(abi)); - const getEventAbi = (topics) => { + const getEventAbi = topics => { topics = [...topics]; const sigHash = (0, _rskUtils.remove0x)(topics.shift()); - let events = abi.filter((i) => { + let events = abi.filter(i => { let { indexed, signature } = (0, _utils.getSignatureDataFromAbi)(i); return signature === sigHash && indexed === topics.length; }); @@ -29,7 +29,7 @@ function EventDecoder(abi, logger) { const encodeElement = (type, decoded) => { if (Array.isArray(decoded)) { - decoded = decoded.map((d) => formatElement(type, d)); + decoded = decoded.map(d => formatElement(type, d)); if (decoded.length === 1) decoded = decoded.join(); } else { decoded = formatElement(type, decoded); @@ -37,7 +37,7 @@ function EventDecoder(abi, logger) { return decoded; }; - const decodeLog = (log) => { + const decodeLog = log => { try { const { eventFragment, name, args, topic } = contractInterface.parseLog(log); @@ -47,8 +47,8 @@ function EventDecoder(abi, logger) { for (const i in eventFragment.inputs) { parsedArgs.push( - encodeElement(eventFragment.inputs[i].type, args[i]) - ); + encodeElement(eventFragment.inputs[i].type, args[i])); + } return Object.assign({}, log, { @@ -56,16 +56,18 @@ function EventDecoder(abi, logger) { event: name, address, args: parsedArgs, - abi: JSON.parse(eventFragment.format('json')) - }); + abi: JSON.parse(eventFragment.format('json')) }); + } catch (e) { - logger.error(e); + // temporary fix to avoid ethers "no matching event" error spam + if (!e.message.includes('no matching event')) { + logger.error(e); + } return log; } }; return Object.freeze({ decodeLog, getEventAbi }); -}var _default = exports.default = +}var _default = -EventDecoder; -//# sourceMappingURL=EventDecoder.js.map \ No newline at end of file +EventDecoder;exports.default = _default; \ No newline at end of file diff --git a/dist/lib/btcUtils.js b/dist/lib/btcUtils.js index 3d3eb99..bcc18f7 100755 --- a/dist/lib/btcUtils.js +++ b/dist/lib/btcUtils.js @@ -1,23 +1,23 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.sha256 = exports.rskAddressFromBtcPublicKey = exports.pubToAddress = exports.parsePublic = exports.h160toAddress = exports.h160 = exports.decompressPublic = exports.compressPublic = void 0;var _crypto = _interopRequireDefault(require("crypto")); +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.rskAddressFromBtcPublicKey = exports.compressPublic = exports.decompressPublic = exports.parsePublic = exports.pubToAddress = exports.h160toAddress = exports.h160 = exports.sha256 = void 0;var _crypto = _interopRequireDefault(require("crypto")); var bs58 = _interopRequireWildcard(require("bs58")); var _rskUtils = require("@rsksmart/rsk-utils"); -var _secp256k = _interopRequireDefault(require("secp256k1"));function _getRequireWildcardCache(e) {if ("function" != typeof WeakMap) return null;var r = new WeakMap(),t = new WeakMap();return (_getRequireWildcardCache = function (e) {return e ? t : r;})(e);}function _interopRequireWildcard(e, r) {if (!r && e && e.__esModule) return e;if (null === e || "object" != typeof e && "function" != typeof e) return { default: e };var t = _getRequireWildcardCache(r);if (t && t.has(e)) return t.get(e);var n = { __proto__: null },a = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) {var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];}return n.default = e, t && t.set(e, n), n;}function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} +var _secp256k = _interopRequireDefault(require("secp256k1"));function _getRequireWildcardCache() {if (typeof WeakMap !== "function") return null;var cache = new WeakMap();_getRequireWildcardCache = function () {return cache;};return cache;}function _interopRequireWildcard(obj) {if (obj && obj.__esModule) {return obj;}if (obj === null || typeof obj !== "object" && typeof obj !== "function") {return { default: obj };}var cache = _getRequireWildcardCache();if (cache && cache.has(obj)) {return cache.get(obj);}var newObj = {};var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var key in obj) {if (Object.prototype.hasOwnProperty.call(obj, key)) {var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;if (desc && (desc.get || desc.set)) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}newObj.default = obj;if (cache) {cache.set(obj, newObj);}return newObj;}function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} const PREFIXES = { mainnet: { pubKeyHash: '00', - scriptHash: '05' - }, + scriptHash: '05' }, + testnet: { pubKeyHash: '6F', - scriptHash: 'C4' - }, + scriptHash: 'C4' }, + regtest: { pubKeyHash: '00', - scriptHash: '00' - } -}; -const getNetPrefix = (netName) => { + scriptHash: '00' } }; + + +const getNetPrefix = netName => { let prefixes = PREFIXES[netName]; if (!prefixes) throw new Error(`Unknown network ${netName}`); return prefixes; @@ -48,9 +48,8 @@ const parsePublic = (pub, compressed) => { return _secp256k.default.publicKeyConvert(pub, compressed); };exports.parsePublic = parsePublic; -const decompressPublic = (compressed) => parsePublic(compressed, false).toString('hex');exports.decompressPublic = decompressPublic; +const decompressPublic = compressed => parsePublic(compressed, false).toString('hex');exports.decompressPublic = decompressPublic; -const compressPublic = (pub) => parsePublic(pub, true).toString('hex');exports.compressPublic = compressPublic; +const compressPublic = pub => parsePublic(pub, true).toString('hex');exports.compressPublic = compressPublic; -const rskAddressFromBtcPublicKey = (cpk) => (0, _rskUtils.add0x)((0, _rskUtils.keccak256)(parsePublic(cpk, false).slice(1)).slice(-40));exports.rskAddressFromBtcPublicKey = rskAddressFromBtcPublicKey; -//# sourceMappingURL=btcUtils.js.map \ No newline at end of file +const rskAddressFromBtcPublicKey = cpk => (0, _rskUtils.add0x)((0, _rskUtils.keccak256)(parsePublic(cpk, false).slice(1)).slice(-40));exports.rskAddressFromBtcPublicKey = rskAddressFromBtcPublicKey; \ No newline at end of file diff --git a/dist/lib/compileJsonAbis.js b/dist/lib/compileJsonAbis.js index 37f76c1..f0ceb8e 100755 --- a/dist/lib/compileJsonAbis.js +++ b/dist/lib/compileJsonAbis.js @@ -12,7 +12,7 @@ const jsonPath = `${__dirname}/jsonAbis`; const ozPath = _path.default.resolve('node_modules/openzeppelin-solidity/build/contracts'); const destinationFile = `${__dirname}/compiled_abi.json`; -compileAbi([jsonPath, ozPath]).then((abi) => { +compileAbi([jsonPath, ozPath]).then(abi => { writeFile(destinationFile, JSON.stringify(abi, null, 2)). then(() => { console.log(`New ABI saved on ${destinationFile}`); @@ -25,11 +25,11 @@ async function compileAbi(dirs) { let jsonFiles = []; for (let dir of dirs) { let files = await readDir(dir); - files = files.filter((file) => _path.default.extname(file) === '.json'); + files = files.filter(file => _path.default.extname(file) === '.json'); if (!files || !files.length) throw new Error(`No json files in dir ${dir}`); - jsonFiles = jsonFiles.concat(files.map((file) => `${dir}/${file}`)); + jsonFiles = jsonFiles.concat(files.map(file => `${dir}/${file}`)); } - let abi = await Promise.all(jsonFiles.map((file) => readJson(`${file}`).then((content) => { + let abi = await Promise.all(jsonFiles.map(file => readJson(`${file}`).then(content => { return Array.isArray(content) ? content : content.abi; }))); if (!abi) throw new Error(`Invalid abi `); @@ -55,15 +55,15 @@ async function readJson(file) { function processAbi(abi) { // remove fallbacks - abi = abi.filter((a) => a.type !== 'fallback'); + abi = abi.filter(a => a.type !== 'fallback'); // remove duplicates - abi = [...new Set(abi.map((a) => JSON.stringify(a)))].map((a) => JSON.parse(a)); + abi = [...new Set(abi.map(a => JSON.stringify(a)))].map(a => JSON.parse(a)); // add signatures abi = (0, _utils.addSignatureDataToAbi)(abi); // detect 4 bytes collisions - let signatures = abi.map((a) => a[_types.ABI_SIGNATURE].signature).filter((v) => v); + let signatures = abi.map(a => a[_types.ABI_SIGNATURE].signature).filter(v => v); signatures = [...new Set(signatures)]; - let fourBytes = signatures.map((s) => s.slice(0, 8)); + let fourBytes = signatures.map(s => s.slice(0, 8)); if (fourBytes.length !== [...new Set(fourBytes)].length) { console.log(fourBytes.filter((v, i) => fourBytes.indexOf(v) !== i)); throw new Error('4bytes collision'); @@ -73,8 +73,7 @@ function processAbi(abi) { return abi; } -process.on('unhandledRejection', (err) => { +process.on('unhandledRejection', err => { console.error(err); process.exit(9); -}); -//# sourceMappingURL=compileJsonAbis.js.map \ No newline at end of file +}); \ No newline at end of file diff --git a/dist/lib/interfacesIds.js b/dist/lib/interfacesIds.js index 4e279ba..970a4d0 100755 --- a/dist/lib/interfacesIds.js +++ b/dist/lib/interfacesIds.js @@ -1,4 +1,4 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.interfacesIds = exports.default = void 0;var _utils = require("./utils"); +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = exports.interfacesIds = void 0;var _utils = require("./utils"); const erc20methods = [ 'totalSupply()', @@ -10,10 +10,10 @@ const erc20methods = [ const erc677Methods = erc20methods.concat([ -'transferAndCall(address,uint256,bytes)'] -); +'transferAndCall(address,uint256,bytes)']); -const interfacesIds = exports.interfacesIds = { + +const interfacesIds = { ERC20: makeInterface(erc20methods), ERC677: makeInterface(erc677Methods), ERC165: makeInterface(['supportsInterface(bytes4)']), @@ -26,27 +26,26 @@ const interfacesIds = exports.interfacesIds = { 'isApprovedForAll(address,address)', 'transferFrom(address,address,uint256)', 'safeTransferFrom(address,address,uint256)', - 'safeTransferFrom(address,address,uint256,bytes)'] - ), + 'safeTransferFrom(address,address,uint256,bytes)']), + ERC721Enumerable: makeInterface([ 'totalSupply()', 'tokenOfOwnerByIndex(address,uint256)', - 'tokenByIndex(uint256)'] - ), + 'tokenByIndex(uint256)']), + ERC721Metadata: makeInterface([ 'name()', 'symbol()', - 'tokenURI(uint256)'] - ), + 'tokenURI(uint256)']), + ERC721Exists: makeInterface([ - 'exists(uint256)'] - ) -}; + 'exists(uint256)']) };exports.interfacesIds = interfacesIds; + + function makeInterface(methods) { let id = (0, _utils.erc165IdFromMethods)(methods); return { methods, id }; -}var _default = exports.default = +}var _default = -interfacesIds; -//# sourceMappingURL=interfacesIds.js.map \ No newline at end of file +interfacesIds;exports.default = _default; \ No newline at end of file diff --git a/dist/lib/nativeContracts/FakeABI.js b/dist/lib/nativeContracts/FakeABI.js index 1d93829..4e1439c 100644 --- a/dist/lib/nativeContracts/FakeABI.js +++ b/dist/lib/nativeContracts/FakeABI.js @@ -1,26 +1,26 @@ "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = FakeABI; var _rskUtils = require("@rsksmart/rsk-utils"); var _utils = require("../utils"); -var btcUtils = _interopRequireWildcard(require("../btcUtils"));function _getRequireWildcardCache(e) {if ("function" != typeof WeakMap) return null;var r = new WeakMap(),t = new WeakMap();return (_getRequireWildcardCache = function (e) {return e ? t : r;})(e);}function _interopRequireWildcard(e, r) {if (!r && e && e.__esModule) return e;if (null === e || "object" != typeof e && "function" != typeof e) return { default: e };var t = _getRequireWildcardCache(r);if (t && t.has(e)) return t.get(e);var n = { __proto__: null },a = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) {var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];}return n.default = e, t && t.set(e, n), n;} +var btcUtils = _interopRequireWildcard(require("../btcUtils"));function _getRequireWildcardCache() {if (typeof WeakMap !== "function") return null;var cache = new WeakMap();_getRequireWildcardCache = function () {return cache;};return cache;}function _interopRequireWildcard(obj) {if (obj && obj.__esModule) {return obj;}if (obj === null || typeof obj !== "object" && typeof obj !== "function") {return { default: obj };}var cache = _getRequireWildcardCache();if (cache && cache.has(obj)) {return cache.get(obj);}var newObj = {};var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var key in obj) {if (Object.prototype.hasOwnProperty.call(obj, key)) {var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;if (desc && (desc.get || desc.set)) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}newObj.default = obj;if (cache) {cache.set(obj, newObj);}return newObj;} function FakeABI(network) { - const decodeBtcTxHash = (data) => { + const decodeBtcTxHash = data => { if ((0, _rskUtils.remove0x)(data).length === 128) { let buffer = Buffer.from((0, _rskUtils.remove0x)(data), 'hex'); data = (0, _rskUtils.add0x)(buffer.toString('ascii')); } return data; }; - const decodeArray = (data) => data.map((d) => Array.isArray(d) ? decodeArray(d) : (0, _rskUtils.add0x)(d.toString('hex'))); + const decodeArray = data => data.map(d => Array.isArray(d) ? decodeArray(d) : (0, _rskUtils.add0x)(d.toString('hex'))); - const decodeFederationData = (data) => { + const decodeFederationData = data => { let [a160, keys] = data; let address = btcUtils.h160toAddress(a160, { prefixKey: 'scriptHash', network }).toString('hex'); - keys = keys.map((d) => btcUtils.rskAddressFromBtcPublicKey(d.toString('hex'))); + keys = keys.map(d => btcUtils.rskAddressFromBtcPublicKey(d.toString('hex'))); return [address, keys]; }; - const commitFederationDecoder = (data) => { + const commitFederationDecoder = data => { const decoded = _rskUtils.rlp.decode(data); let [oldData, newData, block] = decoded; let [oldFederationAddress, oldFederationMembers] = decodeFederationData(oldData); @@ -35,103 +35,102 @@ function FakeABI(network) { { indexed: true, name: 'to', - type: 'address' - }, + type: 'address' }, + { indexed: false, name: 'blockHash', - type: 'string' - }, + type: 'string' }, + { indexed: false, name: 'value', - type: 'uint256' - }], + type: 'uint256' }], + name: 'mining_fee_topic', - type: 'event' - }, + type: 'event' }, + { // Bridge events inputs: [ { indexed: false, name: 'btcTxHash', - type: 'string' - }, + type: 'string' }, + { indexed: false, name: 'btcTx', // raw tx? - type: 'string' - }], + type: 'string' }], + name: 'release_btc_topic', - type: 'event' - }, + type: 'event' }, + { inputs: [ { indexed: false, name: 'sender', - type: 'address' - }], + type: 'address' }], + name: 'update_collections_topic', - type: 'event' - }, + type: 'event' }, + { inputs: [ { indexed: false, name: 'btcTxHash', type: 'string', - _filter: decodeBtcTxHash - }, + _filter: decodeBtcTxHash }, + { indexed: false, name: 'federatorPublicKey', - type: 'string' - }, + type: 'string' }, + { indexed: false, name: 'rskTxHash', - type: 'string' - }], + type: 'string' }], + name: 'add_signature_topic', - type: 'event' - }, + type: 'event' }, + { inputs: [ { indexed: false, name: 'oldFederationAddress', - type: 'string' - }, + type: 'string' }, + { indexed: false, name: 'oldFederationMembers', - type: 'address[]' - }, + type: 'address[]' }, + { indexed: false, name: 'newFederationAddress', - type: 'string' - }, + type: 'string' }, + { indexed: false, name: 'newFederationMembers', - type: 'address[]' - }, + type: 'address[]' }, + { indexed: false, name: 'activationBlockNumber', - type: 'string' - }], + type: 'string' }], + name: 'commit_federation_topic', type: 'event', - _decoder: commitFederationDecoder - }] - )); -} -//# sourceMappingURL=FakeABI.js.map \ No newline at end of file + _decoder: commitFederationDecoder }])); + + +} \ No newline at end of file diff --git a/dist/lib/nativeContracts/NativeContracts.js b/dist/lib/nativeContracts/NativeContracts.js index 7f27c7f..d6d7c6f 100644 --- a/dist/lib/nativeContracts/NativeContracts.js +++ b/dist/lib/nativeContracts/NativeContracts.js @@ -1,12 +1,12 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.NativeContracts = NativeContracts;exports.parseNativeContracts = exports.defaultNativeContracts = exports.default = void 0; +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.NativeContracts = NativeContracts;exports.default = exports.parseNativeContracts = exports.defaultNativeContracts = void 0; var _rskUtils = require("@rsksmart/rsk-utils"); -const defaultNativeContracts = exports.defaultNativeContracts = { +const defaultNativeContracts = { bridge: '0x0000000000000000000000000000000001000006', - remasc: '0x0000000000000000000000000000000001000008' -}; + remasc: '0x0000000000000000000000000000000001000008' };exports.defaultNativeContracts = defaultNativeContracts; -const parseNativeContracts = (nativeContracts) => { + +const parseNativeContracts = nativeContracts => { if (typeof nativeContracts !== 'object') throw new TypeError(`nativeContracts must be an object`); if (Object.keys(nativeContracts) < 1) throw new Error(`Empty native contracts list`); for (let name in nativeContracts) { @@ -21,20 +21,19 @@ function NativeContracts({ nativeContracts } = {}) { nativeContracts = parseNativeContracts(nativeContracts || defaultNativeContracts); const names = Object.keys(nativeContracts); - const getNativeContractAddress = (contractName) => { + const getNativeContractAddress = contractName => { return nativeContracts[contractName]; }; - const getNativeContractName = (address) => { + const getNativeContractName = address => { address = address.toLowerCase(); - return names.find((name) => nativeContracts[name] === address); + return names.find(name => nativeContracts[name] === address); }; - const isNativeContract = (address) => !!getNativeContractName(address); + const isNativeContract = address => !!getNativeContractName(address); const list = () => nativeContracts; return Object.freeze({ getNativeContractAddress, getNativeContractName, isNativeContract, list }); -}var _default = exports.default = +}var _default = -NativeContracts; -//# sourceMappingURL=NativeContracts.js.map \ No newline at end of file +NativeContracts;exports.default = _default; \ No newline at end of file diff --git a/dist/lib/nativeContracts/NativeContractsDecoder.js b/dist/lib/nativeContracts/NativeContractsDecoder.js index 13385b1..d9bdff8 100644 --- a/dist/lib/nativeContracts/NativeContractsDecoder.js +++ b/dist/lib/nativeContracts/NativeContractsDecoder.js @@ -8,10 +8,9 @@ function NativeContractsEventDecoder({ bitcoinNetwork, txBlockNumber }) { const ABI = (0, _utils.addSignatureDataToAbi)((0, _bridgeAbi.getBridgeAbi)({ txBlockNumber, bitcoinNetwork })); const solidityDecoder = (0, _EventDecoder.default)(ABI); - const getEventDecoder = (log) => { + const getEventDecoder = log => { const { eventABI } = solidityDecoder.getEventAbi([...log.topics]); return eventABI ? solidityDecoder : nativeDecoder; }; return Object.freeze({ getEventDecoder }); -} -//# sourceMappingURL=NativeContractsDecoder.js.map \ No newline at end of file +} \ No newline at end of file diff --git a/dist/lib/nativeContracts/NativeContractsEvents.js b/dist/lib/nativeContracts/NativeContractsEvents.js index 4d842f9..fefee03 100755 --- a/dist/lib/nativeContracts/NativeContractsEvents.js +++ b/dist/lib/nativeContracts/NativeContractsEvents.js @@ -4,27 +4,27 @@ var _FakeABI = _interopRequireDefault(require("./FakeABI"));function _interopReq function NativeContractsEvents({ bitcoinNetwork } = {}) { const network = bitcoinNetwork || 'testnet'; const fakeAbi = (0, _FakeABI.default)(network); - const decodeAddress = (address) => { + const decodeAddress = address => { address = Buffer.from((0, _rskUtils.remove0x)(address), 'hex'); return (0, _rskUtils.add0x)(address.toString('hex').slice(-40)); }; - const decodeEventName = (name) => { + const decodeEventName = name => { return Buffer.from((0, _rskUtils.remove0x)(name), 'hex').toString('ascii').replace(/\0/g, ''); }; - const removeEmptyStartBytes = (d) => { + const removeEmptyStartBytes = d => { d = !Buffer.isBuffer(d) ? Buffer.from(d, 'hex') : d; - return d.slice(d.findIndex((x) => x > 0)); + return d.slice(d.findIndex(x => x > 0)); }; - const decodeData = (data) => { + const decodeData = data => { let decoded = _rskUtils.rlp.decode(data); if (!Array.isArray(decoded)) decoded = [decoded]; - return decoded.map((d) => (0, _rskUtils.add0x)(removeEmptyStartBytes(d).toString('hex'))); + return decoded.map(d => (0, _rskUtils.add0x)(removeEmptyStartBytes(d).toString('hex'))); }; - const getEventAbi = (eventName) => fakeAbi.find((a) => a.name === eventName && a.type === 'event'); + const getEventAbi = eventName => fakeAbi.find(a => a.name === eventName && a.type === 'event'); const decodeByType = (type, value) => { if (type === 'address') return decodeAddress(value); @@ -39,7 +39,7 @@ function NativeContractsEvents({ bitcoinNetwork } = {}) { return decodeByType(type, value); }; - const removeCustomProperties = (obj) => { + const removeCustomProperties = obj => { const res = Object.assign({}, obj); for (let p in res) { if (p[0] === '_') delete res[p]; @@ -47,14 +47,14 @@ function NativeContractsEvents({ bitcoinNetwork } = {}) { return res; }; - const cleanAbi = (abi) => { + const cleanAbi = abi => { abi = removeCustomProperties(abi); let { inputs } = abi; - if (Array.isArray(inputs)) abi.inputs = inputs.map((input) => removeCustomProperties(input)); + if (Array.isArray(inputs)) abi.inputs = inputs.map(input => removeCustomProperties(input)); return abi; }; - const decodeLog = (log) => { + const decodeLog = log => { let topics = [...log.topics]; let event = decodeEventName(topics.shift()); let abi = getEventAbi(event); @@ -78,7 +78,6 @@ function NativeContractsEvents({ bitcoinNetwork } = {}) { return log; }; return Object.freeze({ decodeLog, abi: fakeAbi }); -}var _default = exports.default = +}var _default = -NativeContractsEvents; -//# sourceMappingURL=NativeContractsEvents.js.map \ No newline at end of file +NativeContractsEvents;exports.default = _default; \ No newline at end of file diff --git a/dist/lib/nativeContracts/bridgeAbi.js b/dist/lib/nativeContracts/bridgeAbi.js index 318fb54..dea334b 100644 --- a/dist/lib/nativeContracts/bridgeAbi.js +++ b/dist/lib/nativeContracts/bridgeAbi.js @@ -1,11 +1,11 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.RELEASES = void 0;exports.getBridgeAbi = getBridgeAbi;var _bridgeOrchid = _interopRequireDefault(require("./bridge-orchid.json")); +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.getBridgeAbi = getBridgeAbi;exports.RELEASES = void 0;var _bridgeOrchid = _interopRequireDefault(require("./bridge-orchid.json")); var _bridgeWasabi = _interopRequireDefault(require("./bridge-wasabi.json")); var _bridgePapyrus = _interopRequireDefault(require("./bridge-papyrus.json")); var _bridgeIris = _interopRequireDefault(require("./bridge-iris.json")); var _bridgeFingerroot = _interopRequireDefault(require("./bridge-fingerroot.json")); var _bridgeHop = _interopRequireDefault(require("./bridge-hop.json"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} -const RELEASES = exports.RELEASES = { +const RELEASES = { mainnet: [ { height: 0, abi: _bridgeOrchid.default }, { height: 1591000, abi: _bridgeWasabi.default }, @@ -19,9 +19,9 @@ const RELEASES = exports.RELEASES = { { height: 863000, abi: _bridgePapyrus.default }, { height: 2060500, abi: _bridgeIris.default }, { height: 3103000, abi: _bridgeHop.default }, - { height: 4015800, abi: _bridgeFingerroot.default }] + { height: 4015800, abi: _bridgeFingerroot.default }] };exports.RELEASES = RELEASES; + -}; function findmatchingAbi(txHeight, abisWithHeight) { const lastIndex = abisWithHeight.length - 1; @@ -44,5 +44,4 @@ function getBridgeAbi({ txBlockNumber, bitcoinNetwork }) { } return findmatchingAbi(txBlockNumber, RELEASES[bitcoinNetwork]); -} -//# sourceMappingURL=bridgeAbi.js.map \ No newline at end of file +} \ No newline at end of file diff --git a/dist/lib/nod3Connect.js b/dist/lib/nod3Connect.js index 71b112b..31fb4e3 100755 --- a/dist/lib/nod3Connect.js +++ b/dist/lib/nod3Connect.js @@ -1,11 +1,10 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.nod3Connect = exports.default = void 0;var _nod = _interopRequireDefault(require("@rsksmart/nod3"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = exports.nod3Connect = void 0;var _nod = _interopRequireDefault(require("@rsksmart/nod3"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} -const nod3Connect = (url) => { +const nod3Connect = url => { url = url || process.env['RSK_NODE_URL'] || 'http://localhost:4444'; return new _nod.default( - new _nod.default.providers.HttpProvider(url) - ); -};exports.nod3Connect = nod3Connect;var _default = exports.default = + new _nod.default.providers.HttpProvider(url)); -nod3Connect(); -//# sourceMappingURL=nod3Connect.js.map \ No newline at end of file +};exports.nod3Connect = nod3Connect;var _default = + +nod3Connect();exports.default = _default; \ No newline at end of file diff --git a/dist/lib/types.js b/dist/lib/types.js index 4b3983e..a53b168 100755 --- a/dist/lib/types.js +++ b/dist/lib/types.js @@ -1,30 +1,29 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.tokensInterfaces = exports.contractsInterfaces = exports.bitcoinRskNetWorks = exports.bitcoinNetworks = exports.INTERFACE_ID_BYTES = exports.ABI_SIGNATURE = void 0;const ABI_SIGNATURE = exports.ABI_SIGNATURE = '__signatureData'; +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.tokensInterfaces = exports.contractsInterfaces = exports.bitcoinRskNetWorks = exports.bitcoinNetworks = exports.INTERFACE_ID_BYTES = exports.ABI_SIGNATURE = void 0;const ABI_SIGNATURE = '__signatureData';exports.ABI_SIGNATURE = ABI_SIGNATURE; -const INTERFACE_ID_BYTES = exports.INTERFACE_ID_BYTES = 4; +const INTERFACE_ID_BYTES = 4;exports.INTERFACE_ID_BYTES = INTERFACE_ID_BYTES; -const bitcoinNetworks = exports.bitcoinNetworks = { +const bitcoinNetworks = { TESTNET: 'testnet', MAINNET: 'mainnet', - REGTEST: 'regtest' -}; + REGTEST: 'regtest' };exports.bitcoinNetworks = bitcoinNetworks; -const bitcoinRskNetWorks = exports.bitcoinRskNetWorks = { + +const bitcoinRskNetWorks = { 31: bitcoinNetworks.TESTNET, 30: bitcoinNetworks.MAINNET, - 33: bitcoinNetworks.REGTEST -}; + 33: bitcoinNetworks.REGTEST };exports.bitcoinRskNetWorks = bitcoinRskNetWorks; + -const contractsInterfaces = exports.contractsInterfaces = { +const contractsInterfaces = { ERC20: 'ERC20', ERC677: 'ERC677', ERC165: 'ERC165', - ERC721: 'ERC721' -}; + ERC721: 'ERC721' };exports.contractsInterfaces = contractsInterfaces; + const ci = contractsInterfaces; -const tokensInterfaces = exports.tokensInterfaces = [ +const tokensInterfaces = [ ci.ERC20, ci.ERC677, -ci.ERC721]; -//# sourceMappingURL=types.js.map \ No newline at end of file +ci.ERC721];exports.tokensInterfaces = tokensInterfaces; \ No newline at end of file diff --git a/dist/lib/utils.js b/dist/lib/utils.js index c07b330..f850881 100755 --- a/dist/lib/utils.js +++ b/dist/lib/utils.js @@ -1,38 +1,38 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.addSignatureDataToAbi = exports.abiSignatureData = exports.abiMethods = exports.abiEvents = void 0;exports.binarySearchNumber = binarySearchNumber;exports.erc165IdFromMethods = exports.erc165Id = void 0;exports.filterEvents = filterEvents;exports.soliditySignature = exports.soliditySelector = exports.solidityName = exports.setAbi = exports.removeAbiSignatureData = exports.getSignatureDataFromAbi = exports.getInputsIndexes = void 0;var _rskUtils = require("@rsksmart/rsk-utils"); +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.filterEvents = filterEvents;exports.binarySearchNumber = binarySearchNumber;exports.getSignatureDataFromAbi = exports.erc165IdFromMethods = exports.erc165Id = exports.addSignatureDataToAbi = exports.abiSignatureData = exports.getInputsIndexes = exports.removeAbiSignatureData = exports.solidityName = exports.soliditySelector = exports.soliditySignature = exports.abiMethods = exports.abiEvents = exports.setAbi = void 0;var _rskUtils = require("@rsksmart/rsk-utils"); var _types = require("./types"); -const setAbi = (abi) => addSignatureDataToAbi(abi, true);exports.setAbi = setAbi; +const setAbi = abi => addSignatureDataToAbi(abi, true);exports.setAbi = setAbi; -const abiEvents = (abi) => abi.filter((v) => v.type === 'event');exports.abiEvents = abiEvents; +const abiEvents = abi => abi.filter(v => v.type === 'event');exports.abiEvents = abiEvents; -const abiMethods = (abi) => abi.filter((v) => v.type === 'function');exports.abiMethods = abiMethods; +const abiMethods = abi => abi.filter(v => v.type === 'function');exports.abiMethods = abiMethods; -const soliditySignature = (name) => (0, _rskUtils.keccak256)(name);exports.soliditySignature = soliditySignature; +const soliditySignature = name => (0, _rskUtils.keccak256)(name);exports.soliditySignature = soliditySignature; -const soliditySelector = (signature) => signature.slice(0, 8);exports.soliditySelector = soliditySelector; +const soliditySelector = signature => signature.slice(0, 8);exports.soliditySelector = soliditySelector; -const solidityName = (abi) => { +const solidityName = abi => { let { name, inputs } = abi; - inputs = inputs ? inputs.map((i) => i.type) : []; + inputs = inputs ? inputs.map(i => i.type) : []; return name ? `${name}(${inputs.join(',')})` : null; };exports.solidityName = solidityName; -const removeAbiSignatureData = (abi) => { +const removeAbiSignatureData = abi => { abi = Object.assign({}, abi); if (undefined !== abi[_types.ABI_SIGNATURE]) delete abi[_types.ABI_SIGNATURE]; return abi; };exports.removeAbiSignatureData = removeAbiSignatureData; -const getInputsIndexes = (abi) => { +const getInputsIndexes = abi => { let { inputs } = abi; - return inputs && abi.type === 'event' ? inputs.map((i) => i.indexed) : []; + return inputs && abi.type === 'event' ? inputs.map(i => i.indexed) : []; };exports.getInputsIndexes = getInputsIndexes; -const abiSignatureData = (abi) => { +const abiSignatureData = abi => { let method = solidityName(abi); let signature = method ? soliditySignature(method) : null; let index = getInputsIndexes(abi); - let indexed = index ? index.filter((i) => i === true).length : 0; + let indexed = index ? index.filter(i => i === true).length : 0; let eventSignature = null; if (method && abi.type === 'event') { eventSignature = soliditySignature(`${method}${Buffer.from(index).toString('hex')}`); @@ -49,8 +49,8 @@ const addSignatureDataToAbi = (abi, skip) => { return abi; };exports.addSignatureDataToAbi = addSignatureDataToAbi; -const erc165Id = (selectors) => { - let id = selectors.map((s) => Buffer.from(s, 'hex')). +const erc165Id = selectors => { + let id = selectors.map(s => Buffer.from(s, 'hex')). reduce((a, bytes) => { for (let i = 0; i < _types.INTERFACE_ID_BYTES; i++) { a[i] = a[i] ^ bytes[i]; @@ -60,29 +60,29 @@ const erc165Id = (selectors) => { return (0, _rskUtils.add0x)(id.toString('hex')); };exports.erc165Id = erc165Id; -const erc165IdFromMethods = (methods) => { - return erc165Id(methods.map((m) => soliditySelector(soliditySignature(m)))); +const erc165IdFromMethods = methods => { + return erc165Id(methods.map(m => soliditySelector(soliditySignature(m)))); };exports.erc165IdFromMethods = erc165IdFromMethods; -const getSignatureDataFromAbi = (abi) => { +const getSignatureDataFromAbi = abi => { return abi[_types.ABI_SIGNATURE]; };exports.getSignatureDataFromAbi = getSignatureDataFromAbi; function filterEvents(abi) { const type = 'event'; // get events from ABI - let events = abi.filter((a) => a.type === type); + let events = abi.filter(a => a.type === type); // remove events from ABI - abi = abi.filter((a) => a.type !== type); - let keys = [...new Set(events.map((e) => e[_types.ABI_SIGNATURE].eventSignature))]; - events = keys.map((k) => events.find((e) => e[_types.ABI_SIGNATURE].eventSignature === k)); + abi = abi.filter(a => a.type !== type); + let keys = [...new Set(events.map(e => e[_types.ABI_SIGNATURE].eventSignature))]; + events = keys.map(k => events.find(e => e[_types.ABI_SIGNATURE].eventSignature === k)); abi = abi.concat(events); return abi; } function filterArr(a) { if (!Array.isArray(a)) return a; - return a.find((x) => filterArr(x)); + return a.find(x => filterArr(x)); } async function binarySearchNumber(searchCb, high, low) { @@ -90,7 +90,7 @@ async function binarySearchNumber(searchCb, high, low) { high = parseInt(high || 0); low = parseInt(low || 0); if (typeof searchCb !== 'function') throw new Error('SeachCb must be a function'); - let [l, h] = await Promise.all([low, high].map((b) => searchCb(b))); + let [l, h] = await Promise.all([low, high].map(b => searchCb(b))); if (l !== h) { if (high === low + 1) { return high; @@ -105,5 +105,4 @@ async function binarySearchNumber(searchCb, high, low) { } catch (err) { return Promise.reject(err); } -} -//# sourceMappingURL=utils.js.map \ No newline at end of file +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 640a8a3..b50cbc9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@rsksmart/rsk-contract-parser", - "version": "0.0.12", + "version": "1.0.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@rsksmart/rsk-contract-parser", - "version": "0.0.12", + "version": "1.0.3", "license": "MIT", "dependencies": { "@ethersproject/abi": "^5.7.0", @@ -36,27 +36,42 @@ "openzeppelin-solidity": "^2.4.0" } }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@babel/cli": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.12.1.tgz", - "integrity": "sha512-eRJREyrfAJ2r42Iaxe8h3v6yyj1wu9OyosaUHW6UImjGf9ahGL9nsFNh7OCopvtcPL8WnEo7tp78wrZaZ6vG9g==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.23.4.tgz", + "integrity": "sha512-j3luA9xGKCXVyCa5R7lJvOMM+Kc2JEnAEIgz2ggtjQ/j5YUVgfsg/WsG95bbsgq7YLHuiCOzMnoSasuY16qiCw==", "dev": true, "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", "commander": "^4.0.1", - "convert-source-map": "^1.1.0", + "convert-source-map": "^2.0.0", "fs-readdir-recursive": "^1.1.0", - "glob": "^7.0.0", - "lodash": "^4.17.19", + "glob": "^7.2.0", "make-dir": "^2.1.0", - "slash": "^2.0.0", - "source-map": "^0.5.0" + "slash": "^2.0.0" }, "bin": { "babel": "bin/babel.js", "babel-external-helpers": "bin/babel-external-helpers.js" }, + "engines": { + "node": ">=6.9.0" + }, "optionalDependencies": { - "@nicolo-ribaudo/chokidar-2": "^2.1.8", + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", "chokidar": "^3.4.0" }, "peerDependencies": { @@ -64,42 +79,48 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.5.tgz", - "integrity": "sha512-DTsS7cxrsH3by8nqQSpFSyjSfSYl57D6Cf4q8dW3LK83tBKBDCkfcay1nYkXq1nIHXnpX8WMMb/O25HOy3h1zg==", - "dev": true + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, "node_modules/@babel/core": { - "version": "7.12.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", - "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.1", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.1", - "@babel/parser": "^7.12.3", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", - "convert-source-map": "^1.7.0", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.6.tgz", + "integrity": "sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.6", + "@babel/parser": "^7.23.6", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.6", + "@babel/types": "^7.23.6", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -109,335 +130,381 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", "dev": true, "dependencies": { - "ms": "2.1.2" + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@babel/generator": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz", - "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.5", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "node": ">=6.9.0" } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", - "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, "dependencies": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", - "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", "dev": true, "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz", - "integrity": "sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.12.5", - "@babel/helper-validator-option": "^7.12.1", - "browserslist": "^4.14.5", - "semver": "^5.5.0" + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz", - "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.6.tgz", + "integrity": "sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-member-expression-to-functions": "^7.12.1", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.10.4" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.1.tgz", - "integrity": "sha512-rsZ4LGvFTZnzdNZR5HZdmJVuXK8834R5QkF3WvcnBhrlVtF0HSIUC6zbreL9MgjTywhKokn8RIYRiq99+DLAxA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-regex": "^7.10.4", - "regexpu-core": "^4.7.1" + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-define-map": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", - "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", + "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.10.4", - "@babel/types": "^7.10.5", - "lodash": "^4.17.19" + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", - "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, - "dependencies": { - "@babel/types": "^7.12.1" + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", - "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", - "dev": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", - "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, "dependencies": { - "@babel/types": "^7.10.4" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", - "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, "dependencies": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz", - "integrity": "sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", "dev": true, "dependencies": { - "@babel/types": "^7.12.1" + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", - "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dev": true, "dependencies": { - "@babel/types": "^7.12.5" + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", - "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-simple-access": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/helper-validator-identifier": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", - "lodash": "^4.17.19" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", - "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "dev": true, "dependencies": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - }, - "node_modules/@babel/helper-regex": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", - "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true, - "dependencies": { - "lodash": "^4.17.19" + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", - "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-wrap-function": "^7.10.4", - "@babel/types": "^7.12.1" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", - "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", "dev": true, "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.12.1", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/traverse": "^7.12.5", - "@babel/types": "^7.12.5" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", - "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, "dependencies": { - "@babel/types": "^7.12.1" + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", - "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, "dependencies": { - "@babel/types": "^7.12.1" + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", - "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, "dependencies": { - "@babel/types": "^7.11.0" + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", - "dev": true + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, "node_modules/@babel/helper-validator-option": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz", - "integrity": "sha512-YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A==", - "dev": true + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.12.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", - "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", - "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.6.tgz", + "integrity": "sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==", "dev": true, "dependencies": { - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.5", - "@babel/types": "^7.12.5" + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.6", + "@babel/types": "^7.23.6" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/node": { - "version": "7.12.6", - "resolved": "https://registry.npmjs.org/@babel/node/-/node-7.12.6.tgz", - "integrity": "sha512-A1TpW2X05ZkI5+WV7Aa24QX4LyGwrGUQPflG1CyBdr84jUuH0mhkE2BQWSQAlfRnp4bMLjeveMJIhS20JaOfVQ==", + "version": "7.22.19", + "resolved": "https://registry.npmjs.org/@babel/node/-/node-7.22.19.tgz", + "integrity": "sha512-VsKSO9aEHdO16NdtqkJfrXZ9Sxlna1BVnBbToWr1KGdI3cyIk6KqOoa8mWvpK280lJDOwJqxvnl994KmLhq1Yw==", "dev": true, "dependencies": { - "@babel/register": "^7.12.1", + "@babel/register": "^7.22.15", "commander": "^4.0.1", - "core-js": "^3.2.1", - "lodash": "^4.17.19", + "core-js": "^3.30.2", "node-environment-flags": "^1.0.5", - "regenerator-runtime": "^0.13.4", - "resolve": "^1.13.1", + "regenerator-runtime": "^0.14.0", "v8flags": "^3.1.1" }, "bin": { "babel-node": "bin/babel-node.js" }, + "engines": { + "node": ">=6.9.0" + }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/parser": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.5.tgz", - "integrity": "sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -446,224 +513,166 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz", - "integrity": "sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==", + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.12.1", - "@babel/plugin-syntax-async-generators": "^7.8.0" + "@babel/helper-plugin-utils": "^7.22.5" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", - "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", - "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-dynamic-import": "^7.8.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz", - "integrity": "sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.13.0" } }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", - "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz", + "integrity": "sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.0" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz", - "integrity": "sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", - "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.5.tgz", - "integrity": "sha512-UiAnkKuOrCyjZ3sYNHlRlfuZJbBHknMQ9VMwVeX97Ofwx7RpD6gS2HfqTCh8KNUQgcOm8IKt103oR4KIjh7Q8g==", + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.1" + "@babel/helper-plugin-utils": "^7.12.13" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", - "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.1.tgz", - "integrity": "sha512-c2uRpY6WzaVDzynVY9liyykS+kVU+WRZPMPYpkelXH8KBt1oXoI89kPbZKKG/jDT5UK92FTW2fZkZaJhdiBabw==", + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz", - "integrity": "sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==", + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.8.3" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", - "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", - "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" + "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -753,607 +762,1017 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", - "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", - "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz", + "integrity": "sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", - "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.12.1" + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", - "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz", - "integrity": "sha512-zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", + "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", - "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-define-map": "^7.10.4", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.10.4", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz", + "integrity": "sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" }, + "engines": { + "node": ">=6.9.0" + }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", - "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", - "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", - "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", - "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", + "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", - "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", "dev": true, "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", + "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", - "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", - "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", + "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", - "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", + "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", - "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", - "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", - "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-simple-access": "^7.12.1", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", - "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", + "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", "dev": true, "dependencies": { - "@babel/helper-hoist-variables": "^7.10.4", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-validator-identifier": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", - "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", - "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", - "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", - "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", + "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", - "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", + "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", - "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", + "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/compat-data": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", - "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", "dev": true, "dependencies": { - "regenerator-transform": "^0.14.2" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", - "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", + "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", - "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", - "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.1.tgz", - "integrity": "sha512-CiUgKQ3AGVk7kveIaPEET1jNDhZZEl1RPMWdTBE1799bdz++SwqDHStmxfCtDfBhQgCl38YRiSnrMuUMZIWSUQ==", + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-regex": "^7.10.4" + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", - "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", + "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz", - "integrity": "sha512-EPGgpGy+O5Kg5pJFNDKuxt9RdmTgj5sgrus2XVeMp/ZIbOESadgILUbm50SNpghOh3/6yrbsH+NB5+WJTmsA7Q==", + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz", - "integrity": "sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==", + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", - "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-env": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.1.tgz", - "integrity": "sha512-H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.12.1", - "@babel/helper-compilation-targets": "^7.12.1", - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-validator-option": "^7.12.1", - "@babel/plugin-proposal-async-generator-functions": "^7.12.1", - "@babel/plugin-proposal-class-properties": "^7.12.1", - "@babel/plugin-proposal-dynamic-import": "^7.12.1", - "@babel/plugin-proposal-export-namespace-from": "^7.12.1", - "@babel/plugin-proposal-json-strings": "^7.12.1", - "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", - "@babel/plugin-proposal-numeric-separator": "^7.12.1", - "@babel/plugin-proposal-object-rest-spread": "^7.12.1", - "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", - "@babel/plugin-proposal-optional-chaining": "^7.12.1", - "@babel/plugin-proposal-private-methods": "^7.12.1", - "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-class-properties": "^7.12.1", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.12.1", - "@babel/plugin-transform-arrow-functions": "^7.12.1", - "@babel/plugin-transform-async-to-generator": "^7.12.1", - "@babel/plugin-transform-block-scoped-functions": "^7.12.1", - "@babel/plugin-transform-block-scoping": "^7.12.1", - "@babel/plugin-transform-classes": "^7.12.1", - "@babel/plugin-transform-computed-properties": "^7.12.1", - "@babel/plugin-transform-destructuring": "^7.12.1", - "@babel/plugin-transform-dotall-regex": "^7.12.1", - "@babel/plugin-transform-duplicate-keys": "^7.12.1", - "@babel/plugin-transform-exponentiation-operator": "^7.12.1", - "@babel/plugin-transform-for-of": "^7.12.1", - "@babel/plugin-transform-function-name": "^7.12.1", - "@babel/plugin-transform-literals": "^7.12.1", - "@babel/plugin-transform-member-expression-literals": "^7.12.1", - "@babel/plugin-transform-modules-amd": "^7.12.1", - "@babel/plugin-transform-modules-commonjs": "^7.12.1", - "@babel/plugin-transform-modules-systemjs": "^7.12.1", - "@babel/plugin-transform-modules-umd": "^7.12.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", - "@babel/plugin-transform-new-target": "^7.12.1", - "@babel/plugin-transform-object-super": "^7.12.1", - "@babel/plugin-transform-parameters": "^7.12.1", - "@babel/plugin-transform-property-literals": "^7.12.1", - "@babel/plugin-transform-regenerator": "^7.12.1", - "@babel/plugin-transform-reserved-words": "^7.12.1", - "@babel/plugin-transform-shorthand-properties": "^7.12.1", - "@babel/plugin-transform-spread": "^7.12.1", - "@babel/plugin-transform-sticky-regex": "^7.12.1", - "@babel/plugin-transform-template-literals": "^7.12.1", - "@babel/plugin-transform-typeof-symbol": "^7.12.1", - "@babel/plugin-transform-unicode-escapes": "^7.12.1", - "@babel/plugin-transform-unicode-regex": "^7.12.1", - "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.12.1", - "core-js-compat": "^3.6.2", - "semver": "^5.5.0" + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-modules": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", - "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "node_modules/@babel/plugin-transform-spread": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/register": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.12.1.tgz", - "integrity": "sha512-XWcmseMIncOjoydKZnWvWi0/5CUCD+ZYKhRwgYlWOrA8fGZ/FjuLRpqtIhLOVD/fvR1b9DQHtZPn68VvhpYf+Q==", + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", "dev": true, "dependencies": { - "find-cache-dir": "^2.0.0", - "lodash": "^4.17.19", - "make-dir": "^2.1.0", - "pirates": "^4.0.0", - "source-map-support": "^0.5.16" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/runtime": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", - "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", "dev": true, "dependencies": { - "regenerator-runtime": "^0.13.4" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/template": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", - "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/traverse": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.5.tgz", - "integrity": "sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA==", + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.12.5", - "@babel/types": "^7.12.5", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/traverse/node_modules/debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", "dev": true, "dependencies": { - "ms": "2.1.2" + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { - "node": ">=6.0" + "node": ">=6.9.0" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/traverse/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.6.tgz", + "integrity": "sha512-2XPn/BqKkZCpzYhUUNZ1ssXw7DcXfKQEjv/uXZUXgaebCMYmkEsfZ2yY+vv+xtXv50WmL5SGhyB6/xsWxIvvOQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.3", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.4", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.4", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.4", + "@babel/plugin-transform-classes": "^7.23.5", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.4", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.4", + "@babel/plugin-transform-for-of": "^7.23.6", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.4", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.3", + "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", + "@babel/plugin-transform-numeric-separator": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.23.4", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.4", + "@babel/plugin-transform-optional-chaining": "^7.23.4", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.4", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/register": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.22.15.tgz", + "integrity": "sha512-V3Q3EqoQdn65RCgTLwauZaTfd1ShhwPmbBv+1dkZV/HpCGMKVyn6oFcRlI7RaKqiDQjX2Qd3AuoEguBgdjIKlg==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "find-cache-dir": "^2.0.0", + "make-dir": "^2.1.0", + "pirates": "^4.0.5", + "source-map-support": "^0.5.16" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", "dev": true }, + "node_modules/@babel/runtime": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.6.tgz", + "integrity": "sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.6.tgz", + "integrity": "sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.6", + "@babel/types": "^7.23.6", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/types": { - "version": "7.12.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", - "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", + "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.19", + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@ethersproject/abi": { @@ -1488,11 +1907,6 @@ "bn.js": "^5.2.1" } }, - "node_modules/@ethersproject/bignumber/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, "node_modules/@ethersproject/bytes": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", @@ -1590,9 +2004,9 @@ ] }, "node_modules/@ethersproject/networks": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.0.tgz", - "integrity": "sha512-MG6oHSQHd4ebvJrleEQQ4HhVu8Ichr0RDYEfHzsVAVjHNM+w36x9wp9r+hf1JstMXtseXDtkiVoARAG6M959AA==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", "funding": [ { "type": "individual", @@ -1667,11 +2081,6 @@ "hash.js": "1.1.7" } }, - "node_modules/@ethersproject/signing-key/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, "node_modules/@ethersproject/strings": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", @@ -1719,9 +2128,9 @@ } }, "node_modules/@ethersproject/web": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.0.tgz", - "integrity": "sha512-ApHcbbj+muRASVDSCl/tgxaH2LBkRMEYfLOLVa0COipx0+nlu0QKet7U2lEg0vdkh8XRSLf2nd1f1Uk9SrVSGA==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", "funding": [ { "type": "individual", @@ -1740,40 +2149,61 @@ "@ethersproject/strings": "^5.7.0" } }, - "node_modules/@nicolo-ribaudo/chokidar-2": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8.tgz", - "integrity": "sha512-FohwULwAebCUKi/akMFyGi7jfc7JXTeMHzKxuP3umRd9mK/2Y7/SMBSI2jX+YLopPXi+PF9l307NmpfxTdCegA==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, - "optional": true, "dependencies": { - "chokidar": "2.1.8" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@nicolo-ribaudo/chokidar-2/node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", "dev": true, - "optional": true, "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@nicolo-ribaudo/chokidar-2": { + "version": "2.1.8-no-fsevents.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", + "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", + "dev": true, + "optional": true + }, "node_modules/@rsksmart/nod3": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/@rsksmart/nod3/-/nod3-0.5.0.tgz", @@ -1791,31 +2221,10 @@ "rlp": "^2.2.4" } }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, - "dependencies": { - "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, "node_modules/abbrev": { @@ -1839,7 +2248,7 @@ "node_modules/acorn-jsx": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "integrity": "sha512-AU7pnZkguthwBjKgCg6998ByQNIMjbuDQZ8bb78QAFZwPfmKia8AIzgY/gWgqCjnht8JLdXmB4YxA0KaV60ncQ==", "dev": true, "dependencies": { "acorn": "^3.0.4" @@ -1848,7 +2257,7 @@ "node_modules/acorn-jsx/node_modules/acorn": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "integrity": "sha512-OLUyIIZ7mF5oaAUT1w0TFqQS81q3saT46x8t7ukpPjMNk+nbs4ZHhs7ToV8EWnLYLepjETXd4XaCE4uxkMeqUw==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -1860,7 +2269,7 @@ "node_modules/ajv": { "version": "5.5.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "integrity": "sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==", "dev": true, "dependencies": { "co": "^4.6.0", @@ -1872,56 +2281,12 @@ "node_modules/ajv-keywords": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "integrity": "sha512-ZFztHzVRdGLAzJmpUT9LNFLe1YiVOEylcaNpEutM26PVTCtOD919IMfD01CgbRouB42Dd9atjx1HseC15DgOZA==", "dev": true, "peerDependencies": { "ajv": "^5.0.0" } }, - "node_modules/ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "dev": true, - "dependencies": { - "string-width": "^3.0.0" - } - }, - "node_modules/ansi-align/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-align/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-align/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/ansi-colors": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", @@ -1941,12 +2306,12 @@ } }, "node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, "node_modules/ansi-styles": { @@ -1962,27 +2327,16 @@ } }, "node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "optional": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, - "optional": true, "dependencies": { - "remove-trailing-separator": "^1.0.1" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" }, "engines": { - "node": ">=0.10.0" + "node": ">= 8" } }, "node_modules/argparse": { @@ -1994,45 +2348,30 @@ "sprintf-js": "~1.0.2" } }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array-includes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", - "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", "dev": true, "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", - "is-string": "^1.0.5" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" }, "engines": { "node": ">= 0.4" @@ -2041,25 +2380,35 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", "dev": true, - "optional": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array.prototype.flat": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", - "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -2068,24 +2417,16 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.flat/node_modules/es-abstract": { - "version": "1.18.0-next.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", - "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -2094,49 +2435,71 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "node_modules/array.prototype.reduce": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz", + "integrity": "sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==", "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + }, "engines": { - "node": "*" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", "dev": true, - "optional": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true, - "optional": true + "engines": { + "node": "*" + } }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", "dev": true, - "optional": true, - "bin": { - "atob": "bin/atob.js" - }, "engines": { - "node": ">= 4.5.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", "dev": true, "dependencies": { "chalk": "^1.1.3", @@ -2144,10 +2507,19 @@ "js-tokens": "^3.0.2" } }, + "node_modules/babel-code-frame/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/babel-code-frame/node_modules/ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -2156,7 +2528,7 @@ "node_modules/babel-code-frame/node_modules/chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", "dev": true, "dependencies": { "ansi-styles": "^2.2.1", @@ -2172,13 +2544,13 @@ "node_modules/babel-code-frame/node_modules/js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", "dev": true }, "node_modules/babel-code-frame/node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, "dependencies": { "ansi-regex": "^2.0.0" @@ -2190,116 +2562,72 @@ "node_modules/babel-code-frame/node_modules/supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", "dev": true, "engines": { "node": ">=0.8.0" } }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "optional": true, - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base-x": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", - "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz", + "integrity": "sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==", "dev": true, - "optional": true, "dependencies": { - "is-descriptor": "^1.0.0" + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.4", + "semver": "^6.3.1" }, - "engines": { - "node": ">=0.10.0" + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/base/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", + "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", "dev": true, - "optional": true, "dependencies": { - "kind-of": "^6.0.0" + "@babel/helper-define-polyfill-provider": "^0.4.4", + "core-js-compat": "^3.33.1" }, - "engines": { - "node": ">=0.10.0" + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/base/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz", + "integrity": "sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==", "dev": true, - "optional": true, "dependencies": { - "kind-of": "^6.0.0" + "@babel/helper-define-polyfill-provider": "^0.4.4" }, - "engines": { - "node": ">=0.10.0" + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/base/node_modules/is-descriptor": { + "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "optional": true, + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" + "safe-buffer": "^5.0.1" } }, "node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, - "optional": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/bindings": { @@ -2313,154 +2641,15 @@ "node_modules/bip66": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", - "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", + "integrity": "sha512-nemMHz95EmS38a26XbbdxIYj5csHd3RMP3H5bwQknX0WYHF01qhpufP42mLOwVICuH2JmhIhXiWs89MfUGL7Xw==", "dependencies": { "safe-buffer": "^5.0.1" } }, "node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - }, - "node_modules/boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", - "dev": true, - "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/boxen/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/boxen/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/boxen/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/boxen/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, "node_modules/brace-expansion": { "version": "1.1.11", @@ -2473,44 +2662,21 @@ } }, "node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "optional": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, - "optional": true, "dependencies": { - "is-extendable": "^0.1.0" + "fill-range": "^7.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" }, "node_modules/browser-stdout": { "version": "1.3.1", @@ -2532,118 +2698,65 @@ } }, "node_modules/browserslist": { - "version": "4.14.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.7.tgz", - "integrity": "sha512-BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "caniuse-lite": "^1.0.30001157", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.591", - "escalade": "^3.1.1", - "node-releases": "^1.1.66" + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" }, "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" } }, "node_modules/bs58": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", "dependencies": { "base-x": "^3.0.2" } }, "node_modules/buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, "node_modules/buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "optional": true, - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" - } + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" }, "node_modules/call-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", - "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.0" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2652,7 +2765,7 @@ "node_modules/caller-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "integrity": "sha512-UJiE1otjXPF5/x+T3zTnSFiTOEmJoGTD9HmBoxnCUwho61a2eSNn/VwtwuIBDAo2SEOv1AJ7ARI5gCmohFLu/g==", "dev": true, "dependencies": { "callsites": "^0.2.0" @@ -2664,7 +2777,7 @@ "node_modules/callsites": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "integrity": "sha512-Zv4Dns9IbXXmPkgRRUjAaJQgfN4xX5p6+RQFhWUqscdvvK2xK/ZL8b3IXIJsj+4sD+f24NwnWy2BY8AJ82JB0A==", "dev": true, "engines": { "node": ">=0.10.0" @@ -2680,214 +2793,114 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001159", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001159.tgz", - "integrity": "sha512-w9Ph56jOsS8RL20K9cLND3u/+5WASWdhC/PPrf+V3/HsM3uHOavWOR1Xzakbv4Puo/srmPHudkmCRWM7Aq+/UA==", - "dev": true - }, - "node_modules/chai": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", - "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", - "dev": true, - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.0", - "type-detect": "^4.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chai-as-promised": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", - "dev": true, - "dependencies": { - "check-error": "^1.0.2" - }, - "peerDependencies": { - "chai": ">= 2.1.2 < 5" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", - "dev": true - }, - "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/chokidar": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", - "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.1.2" - } - }, - "node_modules/chokidar/node_modules/anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/chokidar/node_modules/binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/chokidar/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/chokidar/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/chokidar/node_modules/fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "deprecated": "\"Please update to latest v2.3 or v2.2\"", + "version": "1.0.30001570", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz", + "integrity": "sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "node_modules/chai": { + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", + "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", "dev": true, "dependencies": { - "is-glob": "^4.0.1" + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" }, "engines": { - "node": ">= 6" + "node": ">=4" } }, - "node_modules/chokidar/node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "node_modules/chai-as-promised": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", "dev": true, "dependencies": { - "binary-extensions": "^2.0.0" + "check-error": "^1.0.2" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "chai": ">= 2.1.2 < 5" } }, - "node_modules/chokidar/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, "engines": { - "node": ">=0.12.0" + "node": ">=4" } }, - "node_modules/chokidar/node_modules/readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "node_modules/chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha512-j/Toj7f1z98Hh2cYo2BVr85EpIRWqUi7rtRSGxh/cqUjqrnJe9l9UE7IUGd2vQ2p+kSHLkSzObQPZPLUC6TQwg==", + "dev": true + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", "dev": true, "dependencies": { - "picomatch": "^2.2.1" + "get-func-name": "^2.0.2" }, "engines": { - "node": ">=8.10.0" + "node": "*" } }, - "node_modules/chokidar/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], "dependencies": { - "is-number": "^7.0.0" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "engines": { - "node": ">=8.0" + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, "node_modules/cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", @@ -2904,51 +2917,10 @@ "deprecated": "CircularJSON is in maintenance only, flatted is its successor.", "dev": true }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "optional": true, - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "optional": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", "dev": true, "dependencies": { "restore-cursor": "^2.0.0" @@ -2975,9 +2947,9 @@ } }, "node_modules/cliui/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true, "engines": { "node": ">=6" @@ -3009,39 +2981,30 @@ "node": ">=6" } }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, "dependencies": { - "mimic-response": "^1.0.0" + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" } }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "optional": true, - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -3054,13 +3017,7 @@ "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/colorette": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", - "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "node_modules/commander": { @@ -3075,20 +3032,13 @@ "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true, - "optional": true - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, "node_modules/concat-stream": { @@ -3106,116 +3056,16 @@ "typedarray": "^0.0.6" } }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/concat-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/concat-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, - "dependencies": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/configstore/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/configstore/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/convert-source-map/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/core-js": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.7.0.tgz", - "integrity": "sha512-NwS7fI5M5B85EwpWuIwJN4i/fbisQUwLwiSNUWeXlkAZ0sbBjLEvLvFLf1uzAUV66PcEPt4xCGCmOZSxVf3xzA==", - "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.34.0.tgz", + "integrity": "sha512-aDdvlDder8QmY91H88GzNi9EtQi2TjvQhpCX6B1v/dAZHU1AuLgHvRh54RiOerpEhEW46Tkf+vgAViB/CWC0ag==", "dev": true, "hasInstallScript": true, "funding": { @@ -3224,32 +3074,22 @@ } }, "node_modules/core-js-compat": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.7.0.tgz", - "integrity": "sha512-V8yBI3+ZLDVomoWICO6kq/CD28Y4r1M7CWeO4AGpMdMfseu8bkSubBmUPySMGKRTS+su4XQ07zUkAsiu9FCWTg==", + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.34.0.tgz", + "integrity": "sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==", "dev": true, "dependencies": { - "browserslist": "^4.14.6", - "semver": "7.0.0" + "browserslist": "^4.22.2" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, "node_modules/create-hash": { @@ -3280,7 +3120,7 @@ "node_modules/cross-spawn": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", "dev": true, "dependencies": { "lru-cache": "^4.0.1", @@ -3288,153 +3128,95 @@ "which": "^1.2.9" } }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "node_modules/cross-spawn/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "dev": true, "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "engines": { - "node": ">=4.0.0" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, - "node_modules/deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "node_modules/cross-spawn/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", "dev": true - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { - "object-keys": "^1.0.12" + "ms": "2.1.2" }, "engines": { - "node": ">= 0.4" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, - "optional": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/define-property/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", "dev": true, - "optional": true, "dependencies": { - "kind-of": "^6.0.0" + "type-detect": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/define-property/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", "dev": true, - "optional": true, "dependencies": { - "kind-of": "^6.0.0" + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/define-property/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, - "optional": true, "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/diff": { @@ -3458,22 +3240,10 @@ "node": ">=0.10.0" } }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/drbg.js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", - "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", + "integrity": "sha512-F4wZ06PvqxYLFEZKkFxTDcns9oFNk34hvmJSEwdzsxVQ8YI5YaxtACgQatkYgv2VI2CFkUd2Y+xosPQnHv809g==", "dependencies": { "browserify-aes": "^1.0.6", "create-hash": "^1.1.2", @@ -3483,16 +3253,10 @@ "node": ">=0.10" } }, - "node_modules/duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, "node_modules/electron-to-chromium": { - "version": "1.3.599", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.599.tgz", - "integrity": "sha512-u6VGpFsIzSCNrWJb1I72SUypz3EGoBaiEgygoMkd0IOcGR3WF3je5VTx9OIRI9Qd8UOMHinLImyJFkYHTq6nsg==", + "version": "1.4.615", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.615.tgz", + "integrity": "sha512-/bKPPcgZVUziECqDc+0HkT87+0zhaWSZHNXqF8FLd2lQcptpmUFwoCSWjCdOng9Gdq+afKArPdEg/0ZW461Eng==", "dev": true }, "node_modules/elliptic": { @@ -3509,47 +3273,62 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, "node_modules/emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, "node_modules/es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", "dev": true, "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.5", + "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.2", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -3558,6 +3337,35 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, "node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -3584,19 +3392,10 @@ "node": ">=6" } }, - "node_modules/escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { "node": ">=0.8.0" @@ -3668,136 +3467,89 @@ } }, "node_modules/eslint-import-resolver-node": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", - "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", - "dev": true, - "dependencies": { - "debug": "^2.6.9", - "resolve": "^1.13.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", - "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, "dependencies": { - "debug": "^2.6.9", - "pkg-dir": "^2.0.0" - }, - "engines": { - "node": ">=4" + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, - "node_modules/eslint-module-utils/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" + "ms": "^2.1.1" } }, - "node_modules/eslint-module-utils/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "debug": "^3.2.7" }, "engines": { "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" }, - "engines": { - "node": ">=4" + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, - "node_modules/eslint-module-utils/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" + "ms": "^2.1.1" } }, - "node_modules/eslint-module-utils/node_modules/pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "node_modules/eslint-plugin-import": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", "dev": true, "dependencies": { - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.22.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz", - "integrity": "sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.1", - "array.prototype.flat": "^1.2.3", - "contains-path": "^0.1.0", - "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.4", - "eslint-module-utils": "^2.6.0", - "has": "^1.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.1", - "read-pkg-up": "^2.0.0", - "resolve": "^1.17.0", - "tsconfig-paths": "^3.9.0" + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" }, "engines": { "node": ">=4" }, "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0" + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "ms": "^2.1.1" } }, "node_modules/eslint-plugin-json": { @@ -3846,6 +3598,15 @@ "eslint": ">=3.1.0" } }, + "node_modules/eslint-plugin-node/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, "node_modules/eslint-plugin-promise": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.8.0.tgz", @@ -3887,20 +3648,22 @@ } }, "node_modules/eslint/node_modules/debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { "ms": "^2.1.1" } }, - "node_modules/eslint/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "node_modules/eslint/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } }, "node_modules/espree": { "version": "3.5.4", @@ -3929,251 +3692,92 @@ } }, "node_modules/esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "optional": true, - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "optional": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "optional": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extend-shallow/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, - "optional": true, "dependencies": { - "is-plain-object": "^2.0.4" + "estraverse": "^5.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=0.10" } }, - "node_modules/external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "dependencies": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - }, "engines": { - "node": ">=0.12" + "node": ">=4.0" } }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "optional": true, "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=4.0" } }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "optional": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=4.0" } }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=4.0" } }, - "node_modules/extglob/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, - "optional": true, - "dependencies": { - "kind-of": "^6.0.0" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/extglob/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "optional": true, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, - "node_modules/extglob/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "node_modules/external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, - "optional": true, "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" }, "engines": { - "node": ">=0.10.0" + "node": ">=0.12" } }, "node_modules/fast-deep-equal": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "integrity": "sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw==", "dev": true }, "node_modules/fast-json-stable-stringify": { @@ -4185,13 +3789,13 @@ "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "node_modules/figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", "dev": true, "dependencies": { "escape-string-regexp": "^1.0.5" @@ -4203,7 +3807,7 @@ "node_modules/file-entry-cache": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "integrity": "sha512-uXP/zGzxxFvFfcZGgBIwotm+Tdc55ddPAzF7iHshP4YGaXMww7rSF9peD9D1sui5ebONg5UobsZv+FfgEpGv/w==", "dev": true, "dependencies": { "flat-cache": "^1.2.1", @@ -4219,32 +3823,15 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "optional": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, - "optional": true, "dependencies": { - "is-extendable": "^0.1.0" + "to-regex-range": "^5.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/find-cache-dir": { @@ -4300,50 +3887,13 @@ "node": ">=0.10.0" } }, - "node_modules/flat/node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=4" - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, - "optional": true, "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" + "is-callable": "^1.1.3" } }, "node_modules/fs-readdir-recursive": { @@ -4355,40 +3905,65 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, "node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, "optional": true, "os": [ "darwin" ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, "engines": { - "node": ">= 4.0" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", "dev": true }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -4408,60 +3983,55 @@ } }, "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true, "engines": { "node": "*" } }, "node_modules/get-intrinsic": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz", - "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "dev": true, "dependencies": { - "pump": "^3.0.0" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" }, "engines": { - "node": ">=6" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -4473,39 +4043,15 @@ } }, "node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "optional": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "optional": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global-dirs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", - "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { - "ini": "^1.3.5" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=8" + "node": ">= 6" } }, "node_modules/globals": { @@ -4517,32 +4063,37 @@ "node": ">=4" } }, - "node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", "dev": true, "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" + "define-properties": "^1.1.3" }, "engines": { - "node": ">=8.6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, "node_modules/growl": { @@ -4554,22 +4105,10 @@ "node": ">=4.x" } }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", "dev": true, "dependencies": { "ansi-regex": "^2.0.0" @@ -4578,76 +4117,82 @@ "node": ">=0.10.0" } }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "engines": { "node": ">=4" } }, - "node_modules/has-symbols": { + "node_modules/has-property-descriptors": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", "dev": true, - "engines": { - "node": ">= 0.4" + "dependencies": { + "get-intrinsic": "^1.2.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", "dev": true, - "optional": true, - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, - "optional": true, - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, - "optional": true, "dependencies": { - "is-buffer": "^1.1.5" + "has-symbols": "^1.0.2" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true, - "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/hash-base": { @@ -4663,6 +4208,19 @@ "node": ">=4" } }, + "node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/hash.js": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", @@ -4672,6 +4230,18 @@ "minimalistic-assert": "^1.0.1" } }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -4684,7 +4254,7 @@ "node_modules/hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", "dependencies": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", @@ -4703,18 +4273,6 @@ "node": ">=0.10.0" } }, - "node_modules/hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -4736,22 +4294,13 @@ "node_modules/ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", "dev": true }, - "node_modules/import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "engines": { "node": ">=0.8.19" @@ -4760,7 +4309,7 @@ "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "dependencies": { "once": "^1.3.0", @@ -4772,12 +4321,6 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, "node_modules/inquirer": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", @@ -4800,124 +4343,101 @@ "through": "^2.3.6" } }, - "node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "optional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "node_modules/internal-slot": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", "dev": true, - "optional": true, "dependencies": { - "is-buffer": "^1.1.5" + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", "dev": true, - "optional": true, "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true, - "optional": true - }, - "node_modules/is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", - "dev": true, - "engines": { - "node": ">= 0.4" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, "dependencies": { - "ci-info": "^2.0.0" + "has-bigints": "^1.0.1" }, - "bin": { - "is-ci": "bin.js" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-core-module": { + "node_modules/is-binary-path": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", - "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "dependencies": { - "has": "^1.0.3" + "binary-extensions": "^2.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8" } }, - "node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, - "optional": true, "dependencies": { - "kind-of": "^3.0.2" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "dev": true, - "optional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, "engines": { "node": ">= 0.4" @@ -4926,45 +4446,37 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, - "optional": true, "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "hasown": "^2.0.0" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, - "optional": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -4973,16 +4485,16 @@ "node_modules/is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { "is-extglob": "^2.1.1" @@ -4991,82 +4503,40 @@ "node": ">=0.10.0" } }, - "node_modules/is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", - "dev": true, - "dependencies": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-negative-zero": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", - "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true, "engines": { "node": ">= 0.4" - } - }, - "node_modules/is-npm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", - "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", - "dev": true, - "engines": { - "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "optional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, "engines": { - "node": ">=0.10.0" + "node": ">=0.12.0" } }, - "node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, - "optional": true, "dependencies": { - "is-buffer": "^1.1.5" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", - "dev": true, - "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-plain-object": { @@ -5074,7 +4544,6 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, - "optional": true, "dependencies": { "isobject": "^3.0.1" }, @@ -5083,12 +4552,13 @@ } }, "node_modules/is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "dependencies": { - "has-symbols": "^1.0.1" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -5103,11 +4573,26 @@ "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", "dev": true }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -5116,12 +4601,12 @@ } }, "node_modules/is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, "dependencies": { - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -5130,46 +4615,50 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", "dev": true, - "optional": true, + "dependencies": { + "which-typed-array": "^1.1.11" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, - "optional": true, "engines": { "node": ">=0.10.0" } @@ -5186,9 +4675,9 @@ "dev": true }, "node_modules/js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "dependencies": { "argparse": "^1.0.7", @@ -5210,32 +4699,23 @@ "node": ">=4" } }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, "node_modules/json-schema-traverse": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "integrity": "sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA==", "dev": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, "node_modules/json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, "bin": { "json5": "lib/cli.js" }, @@ -5244,9 +4724,9 @@ } }, "node_modules/jsonc-parser": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz", - "integrity": "sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", "dev": true }, "node_modules/keccak": { @@ -5259,18 +4739,9 @@ "inherits": "^2.0.4", "nan": "^2.14.0", "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=5.12.0" - } - }, - "node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.0" + }, + "engines": { + "node": ">=5.12.0" } }, "node_modules/kind-of": { @@ -5278,27 +4749,14 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, - "optional": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dev": true, - "dependencies": { - "package-json": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", "dev": true, "dependencies": { "prelude-ls": "~1.1.2", @@ -5308,30 +4766,6 @@ "node": ">= 0.8.0" } }, - "node_modules/load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -5346,9 +4780,15 @@ } }, "node_modules/lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, "node_modules/log-symbols": { @@ -5363,23 +4803,22 @@ "node": ">=8" } }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "get-func-name": "^2.0.1" } }, "node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "yallist": "^3.0.2" } }, "node_modules/make-dir": { @@ -5395,27 +4834,13 @@ "node": ">=6" } }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "optional": true, - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "bin": { + "semver": "bin/semver" } }, "node_modules/md5.js": { @@ -5428,31 +4853,6 @@ "safe-buffer": "^5.1.2" } }, - "node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "optional": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", @@ -5462,15 +4862,6 @@ "node": ">=4" } }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -5479,12 +4870,12 @@ "node_modules/minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" }, "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -5494,45 +4885,21 @@ } }, "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "optional": true, - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-deep/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, - "optional": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "dependencies": { - "minimist": "^1.2.5" + "minimist": "^1.2.6" }, "bin": { "mkdirp": "bin/cmd.js" @@ -5581,40 +4948,6 @@ "url": "https://opencollective.com/mochajs" } }, - "node_modules/mocha/node_modules/anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/mocha/node_modules/binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/mocha/node_modules/chokidar": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", @@ -5646,18 +4979,6 @@ "ms": "^2.1.1" } }, - "node_modules/mocha/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/mocha/node_modules/fsevents": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", @@ -5690,50 +5011,41 @@ "node": "*" } }, - "node_modules/mocha/node_modules/glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "node_modules/mocha/node_modules/js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "dev": true, "dependencies": { - "is-glob": "^4.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, - "engines": { - "node": ">= 6" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/mocha/node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "node_modules/mocha/node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "dependencies": { - "binary-extensions": "^2.0.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" + "node": "*" } }, - "node_modules/mocha/node_modules/js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "node_modules/mocha/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "minimist": "^1.2.5" }, "bin": { - "js-yaml": "bin/js-yaml.js" + "mkdirp": "bin/cmd.js" } }, "node_modules/mocha/node_modules/ms": { @@ -5781,62 +5093,27 @@ "node": ">=6" } }, - "node_modules/mocha/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "node_modules/mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==", "dev": true }, "node_modules/nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "optional": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", + "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==" }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, "node_modules/node-environment-flags": { @@ -5849,38 +5126,37 @@ "semver": "^5.7.0" } }, - "node_modules/node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "node_modules/node-environment-flags/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "engines": { - "node": ">=0.10.0" + "bin": { + "semver": "bin/semver" } }, "node_modules/node-releases": { - "version": "1.1.67", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.67.tgz", - "integrity": "sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, "node_modules/nodemon": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.6.tgz", - "integrity": "sha512-4I3YDSKXg6ltYpcnZeHompqac4E6JeAMpGm8tJnB9Y3T0ehasLa4139dJOcCrB93HHrUMsCrKtoAlXTqT5n4AQ==", + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", + "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", "dev": true, - "hasInstallScript": true, "dependencies": { - "chokidar": "^3.2.2", - "debug": "^3.2.6", + "chokidar": "^3.5.2", + "debug": "^3.2.7", "ignore-by-default": "^1.0.1", - "minimatch": "^3.0.4", - "pstree.remy": "^1.1.7", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", "semver": "^5.7.1", + "simple-update-notifier": "^1.0.7", "supports-color": "^5.5.0", "touch": "^3.1.0", - "undefsafe": "^2.0.3", - "update-notifier": "^4.1.0" + "undefsafe": "^2.0.5" }, "bin": { "nodemon": "bin/nodemon.js" @@ -5894,25 +5170,27 @@ } }, "node_modules/nodemon/node_modules/debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { "ms": "^2.1.1" } }, - "node_modules/nodemon/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "node_modules/nodemon/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } }, "node_modules/nopt": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", "dev": true, "dependencies": { "abbrev": "1" @@ -5924,18 +5202,6 @@ "node": "*" } }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -5945,69 +5211,19 @@ "node": ">=0.10.0" } }, - "node_modules/normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "optional": true, - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "optional": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, - "optional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6022,29 +5238,33 @@ "node": ">= 0.4" } }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, - "optional": true, "dependencies": { - "isobject": "^3.0.0" + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", "dev": true, "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -6054,13 +5274,16 @@ } }, "node_modules/object.getownpropertydescriptors": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz", + "integrity": "sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==", "dev": true, "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" + "array.prototype.reduce": "^1.0.6", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "safe-array-concat": "^1.0.0" }, "engines": { "node": ">= 0.8" @@ -6069,29 +5292,27 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", "dev": true, - "optional": true, "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" } }, "node_modules/object.values": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", - "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", "dev": true, "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -6103,7 +5324,7 @@ "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "dependencies": { "wrappy": "1" @@ -6112,7 +5333,7 @@ "node_modules/onetime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", "dev": true, "dependencies": { "mimic-fn": "^1.0.0" @@ -6147,21 +5368,12 @@ "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -6198,72 +5410,19 @@ "node": ">=6" } }, - "node_modules/package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dev": true, - "dependencies": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/package-json/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true, - "optional": true - }, "node_modules/path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, "engines": { "node": ">=4" @@ -6272,7 +5431,7 @@ "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -6281,49 +5440,34 @@ "node_modules/path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", "dev": true }, "node_modules/path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "node_modules/path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "dependencies": { - "pify": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-type/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true, "engines": { "node": "*" } }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, "node_modules/picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "engines": { "node": ">=8.6" @@ -6342,13 +5486,10 @@ } }, "node_modules/pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "dev": true, - "dependencies": { - "node-modules-regexp": "^1.0.0" - }, "engines": { "node": ">= 6" } @@ -6374,34 +5515,15 @@ "node": ">=4" } }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", "dev": true, "engines": { "node": ">= 0.8.0" } }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -6420,7 +5542,7 @@ "node_modules/pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", "dev": true }, "node_modules/pstree.remy": { @@ -6429,168 +5551,17 @@ "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", "dev": true }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, - "dependencies": { - "escape-goat": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ramda": { "version": "0.26.1", "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz", "integrity": "sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==", "dev": true }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "dependencies": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "optional": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/readdirp/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, - "optional": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -6601,21 +5572,22 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/readdirp/node_modules/safe-buffer": { + "node_modules/readable-stream/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "optional": true + "dev": true }, - "node_modules/readdirp/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, - "optional": true, "dependencies": { - "safe-buffer": "~5.1.0" + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" } }, "node_modules/regenerate": { @@ -6625,44 +5597,47 @@ "dev": true }, "node_modules/regenerate-unicode-properties": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", "dev": true, "dependencies": { - "regenerate": "^1.4.0" + "regenerate": "^1.4.2" }, "engines": { "node": ">=4" } }, "node_modules/regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", "dev": true }, "node_modules/regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, "dependencies": { "@babel/runtime": "^7.8.4" } }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "node_modules/regexp.prototype.flags": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dev": true, - "optional": true, "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/regexpp": { @@ -6675,56 +5650,26 @@ } }, "node_modules/regexpu-core": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", - "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, "dependencies": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" }, "engines": { "node": ">=4" } }, - "node_modules/registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dev": true, - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dev": true, - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", - "dev": true - }, "node_modules/regjsparser": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", - "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, "dependencies": { "jsesc": "~0.5.0" @@ -6736,43 +5681,16 @@ "node_modules/regjsparser/node_modules/jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "dev": true, "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true, - "optional": true - }, - "node_modules/repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10" + "jsesc": "bin/jsesc" } }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, "engines": { "node": ">=0.10.0" @@ -6787,7 +5705,7 @@ "node_modules/require-uncached": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "integrity": "sha512-Xct+41K3twrbBHdxAgMoOS+cNcoqIjfM2/VxBF4LL2hVph7YsF8VSKyQ3BDFZwEVbok9yeDl2le/qo0S77WG2w==", "dev": true, "dependencies": { "caller-path": "^0.1.0", @@ -6798,13 +5716,17 @@ } }, "node_modules/resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "dependencies": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6813,33 +5735,16 @@ "node_modules/resolve-from": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "integrity": "sha512-kT10v4dhrlLNcnO084hEjvXCI1wUG9qZLoz2RogxqDQQYy7IxjI/iMUkOtQTNEh6rzHxvdQWHsJyel1pKOVCxg==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true, - "optional": true - }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, "node_modules/restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", "dev": true, "dependencies": { "onetime": "^2.0.0", @@ -6849,16 +5754,6 @@ "node": ">=4" } }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.12" - } - }, "node_modules/rimraf": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", @@ -6881,11 +5776,11 @@ } }, "node_modules/rlp": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", - "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", + "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", "dependencies": { - "bn.js": "^4.11.1" + "bn.js": "^5.2.0" }, "bin": { "rlp": "bin/rlp" @@ -6903,18 +5798,42 @@ "node_modules/rx-lite": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "integrity": "sha512-Cun9QucwK6MIrp3mry/Y7hqD1oFqTYLQ4pGxaHTjIdaFDWRGGLikqp6u8LcWJnzpoALg9hap+JGk8sFIUuEGNA==", "dev": true }, "node_modules/rx-lite-aggregates": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "integrity": "sha512-3xPNZGW93oCjiO7PtKxRK6iOVYBWBvtf9QHDfU23Oc+dLIQmAV//UnyXV/yihv81VS/UqoQPk4NegS8EFi55Hg==", "dev": true, "dependencies": { "rx-lite": "*" } }, + "node_modules/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -6934,14 +5853,18 @@ } ] }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", "dev": true, - "optional": true, "dependencies": { - "ret": "~0.1.10" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/safer-buffer": { @@ -6969,31 +5892,15 @@ "node": ">=4.0.0" } }, - "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dev": true, - "dependencies": { - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } + "node_modules/secp256k1/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, - "node_modules/semver-diff/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -7002,36 +5909,36 @@ "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "dev": true }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", "dev": true, - "optional": true, "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/set-value/node_modules/extend-shallow": { + "node_modules/set-function-name": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", "dev": true, - "optional": true, "dependencies": { - "is-extendable": "^0.1.0" + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/sha.js": { @@ -7046,10 +5953,22 @@ "sha.js": "bin.js" } }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "dev": true, "dependencies": { "shebang-regex": "^1.0.0" @@ -7061,215 +5980,75 @@ "node_modules/shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "node_modules/slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, "dependencies": { - "is-fullwidth-code-point": "^2.0.0" + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" }, - "engines": { - "node": ">=4" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "optional": true, - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "node_modules/simple-update-notifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", + "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", "dev": true, - "optional": true, "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "semver": "~7.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8.10.0" } }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", "dev": true, - "optional": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", "dev": true, - "optional": true, - "dependencies": { - "kind-of": "^6.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/snapdragon-node/node_modules/is-data-descriptor": { + "node_modules/slice-ansi": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "optional": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "optional": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "optional": true, - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "optional": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, - "optional": true, "dependencies": { - "is-extendable": "^0.1.0" + "is-fullwidth-code-point": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dev": true, - "optional": true, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", @@ -7278,100 +6057,35 @@ "node": ">=0.10.0" } }, - "node_modules/source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated", - "dev": true, - "optional": true - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", - "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", - "dev": true - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, - "optional": true, "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "optional": true, - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "optional": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dependencies": { - "safe-buffer": "~5.2.0" + "safe-buffer": "~5.1.0" } }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, "node_modules/string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -7381,41 +6095,19 @@ "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz", - "integrity": "sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=4" } }, - "node_modules/string.prototype.trimend/node_modules/es-abstract": { - "version": "1.18.0-next.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", - "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", "dev": true, "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -7424,40 +6116,29 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz", - "integrity": "sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg==", + "node_modules/string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dev": true, "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string.prototype.trimstart/node_modules/es-abstract": { - "version": "1.18.0-next.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", - "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "node_modules/string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", "dev": true, "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7466,7 +6147,7 @@ "node_modules/strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", "dev": true, "dependencies": { "ansi-regex": "^3.0.0" @@ -7475,19 +6156,10 @@ "node": ">=4" } }, - "node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, "engines": { "node": ">=4" @@ -7496,7 +6168,7 @@ "node_modules/strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -7514,6 +6186,18 @@ "node": ">=4" } }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/table": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", @@ -7528,28 +6212,16 @@ "string-width": "^2.1.1" } }, - "node_modules/term-size": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, "node_modules/tmp": { @@ -7567,75 +6239,22 @@ "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, "engines": { "node": ">=4" } }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "optional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "optional": true, - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "optional": true, "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "^7.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8.0" } }, "node_modules/touch": { @@ -7651,21 +6270,21 @@ } }, "node_modules/tsconfig-paths": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", - "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, "dependencies": { "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", + "json5": "^1.0.2", + "minimist": "^1.2.6", "strip-bom": "^3.0.0" } }, "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "dependencies": { "minimist": "^1.2.0" @@ -7677,7 +6296,7 @@ "node_modules/type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", "dev": true, "dependencies": { "prelude-ls": "~1.1.2" @@ -7695,298 +6314,172 @@ "node": ">=4" } }, - "node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/undefsafe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", - "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", - "dev": true, - "dependencies": { - "debug": "^2.2.0" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", "dev": true, "dependencies": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" }, "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", - "dev": true, - "engines": { - "node": ">=4" + "node": ">= 0.4" } }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", "dev": true, - "optional": true, "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "dependencies": { - "crypto-random-string": "^2.0.0" + "node": ">= 0.4" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/unset-value": { + "node_modules/typed-array-byte-offset": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", "dev": true, - "optional": true, "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "optional": true, - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "node": ">= 0.4" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", "dev": true, - "optional": true, "dependencies": { - "isarray": "1.0.0" + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4", - "yarn": "*" - } + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true }, - "node_modules/update-notifier": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", - "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, "dependencies": { - "boxen": "^4.2.0", - "chalk": "^3.0.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.1", - "is-npm": "^4.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.0.0", - "pupa": "^2.0.1", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=8" + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" }, "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/update-notifier/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true }, - "node_modules/update-notifier/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/update-notifier/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=4" } }, - "node_modules/update-notifier/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/update-notifier/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/update-notifier/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "dev": true, - "optional": true - }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "prepend-http": "^2.0.0" + "escalade": "^3.1.1", + "picocolors": "^1.0.0" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/v8flags": { "version": "3.2.0", @@ -7996,27 +6489,17 @@ "dependencies": { "homedir-polyfill": "^1.0.1" }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "engines": { + "node": ">= 0.10" } }, "node_modules/vscode-json-languageservice": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-3.10.0.tgz", - "integrity": "sha512-8IvuRSQnjznu+obqy6Dy4S4H68Ke7a3Kb+A0FcdctyAMAWEnrORpCpMOMqEYiPLm/OTYLVWJ7ql3qToDTozu4w==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-3.11.0.tgz", + "integrity": "sha512-QxI+qV97uD7HHOCjh3MrM1TfbdwmTXrMckri5Tus1/FQiG3baDZb2C9Y0y8QThs7PwHYBIQXcAc59ZveCRZKPA==", "dev": true, "dependencies": { - "jsonc-parser": "^2.3.1", + "jsonc-parser": "^3.0.0", "vscode-languageserver-textdocument": "^1.0.1", "vscode-languageserver-types": "3.16.0-next.2", "vscode-nls": "^5.0.0", @@ -8024,9 +6507,9 @@ } }, "node_modules/vscode-languageserver-textdocument": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.1.tgz", - "integrity": "sha512-UIcJDjX7IFkck7cSkNNyzIz5FyvpQfY7sdzVy+wkKN/BLaD4DQ0ppXQrKePomCxTS7RrolK1I0pey0bG9eh8dA==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz", + "integrity": "sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==", "dev": true }, "node_modules/vscode-languageserver-types": { @@ -8036,9 +6519,9 @@ "dev": true }, "node_modules/vscode-nls": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.0.0.tgz", - "integrity": "sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.2.0.tgz", + "integrity": "sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==", "dev": true }, "node_modules/vscode-uri": { @@ -8059,87 +6542,60 @@ "which": "bin/which" } }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, "dependencies": { - "string-width": "^4.0.0" + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/widest-line/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/widest-line/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", "dev": true }, - "node_modules/widest-line/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/widest-line/node_modules/string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "node_modules/which-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.4", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/widest-line/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "node_modules/wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" + "string-width": "^1.0.2 || 2" } }, "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -8160,9 +6616,9 @@ } }, "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true, "engines": { "node": ">=6" @@ -8197,13 +6653,13 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, "node_modules/write": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "integrity": "sha512-CJ17OoULEKXpA5pef3qLj5AxTJ6mSt7g84he2WIskKwqFO4T97d5V7Tadl0DYDk7qyUOQD5WlUlOMChaYrhxeA==", "dev": true, "dependencies": { "mkdirp": "^0.5.1" @@ -8212,27 +6668,6 @@ "node": ">=0.10.0" } }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", @@ -8240,9 +6675,9 @@ "dev": true }, "node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "node_modules/yargs": { @@ -8288,9 +6723,9 @@ } }, "node_modules/yargs/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true, "engines": { "node": ">=6" @@ -8324,541 +6759,456 @@ } }, "dependencies": { + "@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, "@babel/cli": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.12.1.tgz", - "integrity": "sha512-eRJREyrfAJ2r42Iaxe8h3v6yyj1wu9OyosaUHW6UImjGf9ahGL9nsFNh7OCopvtcPL8WnEo7tp78wrZaZ6vG9g==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.23.4.tgz", + "integrity": "sha512-j3luA9xGKCXVyCa5R7lJvOMM+Kc2JEnAEIgz2ggtjQ/j5YUVgfsg/WsG95bbsgq7YLHuiCOzMnoSasuY16qiCw==", "dev": true, "requires": { - "@nicolo-ribaudo/chokidar-2": "^2.1.8", + "@jridgewell/trace-mapping": "^0.3.17", + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", "chokidar": "^3.4.0", "commander": "^4.0.1", - "convert-source-map": "^1.1.0", + "convert-source-map": "^2.0.0", "fs-readdir-recursive": "^1.1.0", - "glob": "^7.0.0", - "lodash": "^4.17.19", + "glob": "^7.2.0", "make-dir": "^2.1.0", - "slash": "^2.0.0", - "source-map": "^0.5.0" + "slash": "^2.0.0" } }, "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" } }, "@babel/compat-data": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.5.tgz", - "integrity": "sha512-DTsS7cxrsH3by8nqQSpFSyjSfSYl57D6Cf4q8dW3LK83tBKBDCkfcay1nYkXq1nIHXnpX8WMMb/O25HOy3h1zg==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", "dev": true }, "@babel/core": { - "version": "7.12.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", - "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.1", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.1", - "@babel/parser": "^7.12.3", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", - "convert-source-map": "^1.7.0", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.6.tgz", + "integrity": "sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.6", + "@babel/parser": "^7.23.6", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.6", + "@babel/types": "^7.23.6", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" } }, "@babel/generator": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz", - "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", "dev": true, "requires": { - "@babel/types": "^7.12.5", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" } }, "@babel/helper-annotate-as-pure": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", - "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.22.5" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", - "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/types": "^7.22.15" } }, "@babel/helper-compilation-targets": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz", - "integrity": "sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.12.5", - "@babel/helper-validator-option": "^7.12.1", - "browserslist": "^4.14.5", - "semver": "^5.5.0" + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" } }, "@babel/helper-create-class-features-plugin": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz", - "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.6.tgz", + "integrity": "sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-member-expression-to-functions": "^7.12.1", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.10.4" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.1.tgz", - "integrity": "sha512-rsZ4LGvFTZnzdNZR5HZdmJVuXK8834R5QkF3WvcnBhrlVtF0HSIUC6zbreL9MgjTywhKokn8RIYRiq99+DLAxA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-regex": "^7.10.4", - "regexpu-core": "^4.7.1" + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" } }, - "@babel/helper-define-map": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", - "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", + "@babel/helper-define-polyfill-provider": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", + "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/types": "^7.10.5", - "lodash": "^4.17.19" + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" } }, - "@babel/helper-explode-assignable-expression": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", - "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.1" - } + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true }, "@babel/helper-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", - "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", - "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" } }, "@babel/helper-hoist-variables": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", - "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.22.5" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz", - "integrity": "sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", "dev": true, "requires": { - "@babel/types": "^7.12.1" + "@babel/types": "^7.23.0" } }, "@babel/helper-module-imports": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", - "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dev": true, "requires": { - "@babel/types": "^7.12.5" + "@babel/types": "^7.22.15" } }, "@babel/helper-module-transforms": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", - "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-simple-access": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/helper-validator-identifier": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", - "lodash": "^4.17.19" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" } }, "@babel/helper-optimise-call-expression": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", - "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "dev": true, "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.22.5" } }, "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true }, - "@babel/helper-regex": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", - "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", - "dev": true, - "requires": { - "lodash": "^4.17.19" - } - }, "@babel/helper-remap-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", - "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-wrap-function": "^7.10.4", - "@babel/types": "^7.12.1" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" } }, "@babel/helper-replace-supers": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", - "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.1", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/traverse": "^7.12.5", - "@babel/types": "^7.12.5" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" } }, "@babel/helper-simple-access": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", - "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, "requires": { - "@babel/types": "^7.12.1" + "@babel/types": "^7.22.5" } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", - "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, "requires": { - "@babel/types": "^7.12.1" + "@babel/types": "^7.22.5" } }, "@babel/helper-split-export-declaration": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", - "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, "requires": { - "@babel/types": "^7.11.0" + "@babel/types": "^7.22.5" } }, + "@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true + }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true }, "@babel/helper-validator-option": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz", - "integrity": "sha512-YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "dev": true }, "@babel/helper-wrap-function": { - "version": "7.12.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", - "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" } }, "@babel/helpers": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", - "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.6.tgz", + "integrity": "sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==", "dev": true, "requires": { - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.5", - "@babel/types": "^7.12.5" + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.6", + "@babel/types": "^7.23.6" } }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" } }, "@babel/node": { - "version": "7.12.6", - "resolved": "https://registry.npmjs.org/@babel/node/-/node-7.12.6.tgz", - "integrity": "sha512-A1TpW2X05ZkI5+WV7Aa24QX4LyGwrGUQPflG1CyBdr84jUuH0mhkE2BQWSQAlfRnp4bMLjeveMJIhS20JaOfVQ==", + "version": "7.22.19", + "resolved": "https://registry.npmjs.org/@babel/node/-/node-7.22.19.tgz", + "integrity": "sha512-VsKSO9aEHdO16NdtqkJfrXZ9Sxlna1BVnBbToWr1KGdI3cyIk6KqOoa8mWvpK280lJDOwJqxvnl994KmLhq1Yw==", "dev": true, "requires": { - "@babel/register": "^7.12.1", + "@babel/register": "^7.22.15", "commander": "^4.0.1", - "core-js": "^3.2.1", - "lodash": "^4.17.19", + "core-js": "^3.30.2", "node-environment-flags": "^1.0.5", - "regenerator-runtime": "^0.13.4", - "resolve": "^1.13.1", + "regenerator-runtime": "^0.14.0", "v8flags": "^3.1.1" } }, "@babel/parser": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.5.tgz", - "integrity": "sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", "dev": true }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz", - "integrity": "sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.12.1", - "@babel/plugin-syntax-async-generators": "^7.8.0" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", - "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", - "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-dynamic-import": "^7.8.0" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz", - "integrity": "sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/plugin-proposal-json-strings": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", - "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" } }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz", - "integrity": "sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz", + "integrity": "sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", - "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" - } + "requires": {} }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.5.tgz", - "integrity": "sha512-UiAnkKuOrCyjZ3sYNHlRlfuZJbBHknMQ9VMwVeX97Ofwx7RpD6gS2HfqTCh8KNUQgcOm8IKt103oR4KIjh7Q8g==", + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "@babel/helper-plugin-utils": "^7.8.0" } }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.1" + "@babel/helper-plugin-utils": "^7.12.13" } }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", - "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + "@babel/helper-plugin-utils": "^7.14.5" } }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.1.tgz", - "integrity": "sha512-c2uRpY6WzaVDzynVY9liyykS+kVU+WRZPMPYpkelXH8KBt1oXoI89kPbZKKG/jDT5UK92FTW2fZkZaJhdiBabw==", + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, - "@babel/plugin-proposal-private-methods": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz", - "integrity": "sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==", + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.8.3" } }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", - "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", + "@babel/plugin-syntax-import-assertions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", - "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, "@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", @@ -8922,491 +7272,683 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, "@babel/plugin-syntax-top-level-await": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", - "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", - "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-async-generator-functions": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz", + "integrity": "sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", - "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.12.1" + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", - "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz", - "integrity": "sha512-zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-class-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-class-static-block": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", + "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz", + "integrity": "sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-dynamic-import": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", + "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-export-namespace-from": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", + "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-json-strings": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", + "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" } }, - "@babel/plugin-transform-classes": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", - "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-define-map": "^7.10.4", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.10.4", - "globals": "^11.1.0" + "@babel/plugin-transform-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/plugin-transform-computed-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", - "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", + "@babel/plugin-transform-logical-assignment-operators": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", + "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, - "@babel/plugin-transform-destructuring": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", - "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", + "@babel/plugin-transform-member-expression-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", - "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", + "@babel/plugin-transform-modules-amd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", - "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", + "@babel/plugin-transform-modules-commonjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" } }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", - "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", + "@babel/plugin-transform-modules-systemjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", + "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" } }, - "@babel/plugin-transform-for-of": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", - "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", + "@babel/plugin-transform-modules-umd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/plugin-transform-function-name": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", - "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/plugin-transform-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", - "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", + "@babel/plugin-transform-new-target": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", - "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", + "@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", + "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" } }, - "@babel/plugin-transform-modules-amd": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", - "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", + "@babel/plugin-transform-numeric-separator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", + "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", - "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", + "@babel/plugin-transform-object-rest-spread": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", + "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-simple-access": "^7.12.1", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/compat-data": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.23.3" } }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", - "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", + "@babel/plugin-transform-object-super": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.10.4", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-validator-identifier": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" } }, - "@babel/plugin-transform-modules-umd": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", - "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", + "@babel/plugin-transform-optional-catch-binding": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", + "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" } }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", - "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", + "@babel/plugin-transform-optional-chaining": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, - "@babel/plugin-transform-new-target": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", - "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", + "@babel/plugin-transform-parameters": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/plugin-transform-object-super": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", - "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", + "@babel/plugin-transform-private-methods": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1" + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" } }, - "@babel/plugin-transform-parameters": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", - "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", + "@babel/plugin-transform-private-property-in-object": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", + "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, "@babel/plugin-transform-property-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", - "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-regenerator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", - "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", "dev": true, "requires": { - "regenerator-transform": "^0.14.2" + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", - "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", - "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", - "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.1.tgz", - "integrity": "sha512-CiUgKQ3AGVk7kveIaPEET1jNDhZZEl1RPMWdTBE1799bdz++SwqDHStmxfCtDfBhQgCl38YRiSnrMuUMZIWSUQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-regex": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-template-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", - "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz", - "integrity": "sha512-EPGgpGy+O5Kg5pJFNDKuxt9RdmTgj5sgrus2XVeMp/ZIbOESadgILUbm50SNpghOh3/6yrbsH+NB5+WJTmsA7Q==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz", - "integrity": "sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-unicode-property-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", - "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-unicode-sets-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/preset-env": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.1.tgz", - "integrity": "sha512-H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.12.1", - "@babel/helper-compilation-targets": "^7.12.1", - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-validator-option": "^7.12.1", - "@babel/plugin-proposal-async-generator-functions": "^7.12.1", - "@babel/plugin-proposal-class-properties": "^7.12.1", - "@babel/plugin-proposal-dynamic-import": "^7.12.1", - "@babel/plugin-proposal-export-namespace-from": "^7.12.1", - "@babel/plugin-proposal-json-strings": "^7.12.1", - "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", - "@babel/plugin-proposal-numeric-separator": "^7.12.1", - "@babel/plugin-proposal-object-rest-spread": "^7.12.1", - "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", - "@babel/plugin-proposal-optional-chaining": "^7.12.1", - "@babel/plugin-proposal-private-methods": "^7.12.1", - "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-class-properties": "^7.12.1", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.6.tgz", + "integrity": "sha512-2XPn/BqKkZCpzYhUUNZ1ssXw7DcXfKQEjv/uXZUXgaebCMYmkEsfZ2yY+vv+xtXv50WmL5SGhyB6/xsWxIvvOQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.3", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.12.1", - "@babel/plugin-transform-arrow-functions": "^7.12.1", - "@babel/plugin-transform-async-to-generator": "^7.12.1", - "@babel/plugin-transform-block-scoped-functions": "^7.12.1", - "@babel/plugin-transform-block-scoping": "^7.12.1", - "@babel/plugin-transform-classes": "^7.12.1", - "@babel/plugin-transform-computed-properties": "^7.12.1", - "@babel/plugin-transform-destructuring": "^7.12.1", - "@babel/plugin-transform-dotall-regex": "^7.12.1", - "@babel/plugin-transform-duplicate-keys": "^7.12.1", - "@babel/plugin-transform-exponentiation-operator": "^7.12.1", - "@babel/plugin-transform-for-of": "^7.12.1", - "@babel/plugin-transform-function-name": "^7.12.1", - "@babel/plugin-transform-literals": "^7.12.1", - "@babel/plugin-transform-member-expression-literals": "^7.12.1", - "@babel/plugin-transform-modules-amd": "^7.12.1", - "@babel/plugin-transform-modules-commonjs": "^7.12.1", - "@babel/plugin-transform-modules-systemjs": "^7.12.1", - "@babel/plugin-transform-modules-umd": "^7.12.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", - "@babel/plugin-transform-new-target": "^7.12.1", - "@babel/plugin-transform-object-super": "^7.12.1", - "@babel/plugin-transform-parameters": "^7.12.1", - "@babel/plugin-transform-property-literals": "^7.12.1", - "@babel/plugin-transform-regenerator": "^7.12.1", - "@babel/plugin-transform-reserved-words": "^7.12.1", - "@babel/plugin-transform-shorthand-properties": "^7.12.1", - "@babel/plugin-transform-spread": "^7.12.1", - "@babel/plugin-transform-sticky-regex": "^7.12.1", - "@babel/plugin-transform-template-literals": "^7.12.1", - "@babel/plugin-transform-typeof-symbol": "^7.12.1", - "@babel/plugin-transform-unicode-escapes": "^7.12.1", - "@babel/plugin-transform-unicode-regex": "^7.12.1", - "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.12.1", - "core-js-compat": "^3.6.2", - "semver": "^5.5.0" + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.4", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.4", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.4", + "@babel/plugin-transform-classes": "^7.23.5", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.4", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.4", + "@babel/plugin-transform-for-of": "^7.23.6", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.4", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.3", + "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", + "@babel/plugin-transform-numeric-separator": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.23.4", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.4", + "@babel/plugin-transform-optional-chaining": "^7.23.4", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.4", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.6", + "babel-plugin-polyfill-corejs3": "^0.8.5", + "babel-plugin-polyfill-regenerator": "^0.5.3", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" } }, "@babel/preset-modules": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", - "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" } }, "@babel/register": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.12.1.tgz", - "integrity": "sha512-XWcmseMIncOjoydKZnWvWi0/5CUCD+ZYKhRwgYlWOrA8fGZ/FjuLRpqtIhLOVD/fvR1b9DQHtZPn68VvhpYf+Q==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.22.15.tgz", + "integrity": "sha512-V3Q3EqoQdn65RCgTLwauZaTfd1ShhwPmbBv+1dkZV/HpCGMKVyn6oFcRlI7RaKqiDQjX2Qd3AuoEguBgdjIKlg==", "dev": true, "requires": { + "clone-deep": "^4.0.1", "find-cache-dir": "^2.0.0", - "lodash": "^4.17.19", "make-dir": "^2.1.0", - "pirates": "^4.0.0", + "pirates": "^4.0.5", "source-map-support": "^0.5.16" } }, + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, "@babel/runtime": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", - "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.6.tgz", + "integrity": "sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==", "dev": true, "requires": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.14.0" } }, "@babel/template": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", - "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" } }, "@babel/traverse": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.5.tgz", - "integrity": "sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.12.5", - "@babel/types": "^7.12.5", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - }, - "dependencies": { - "debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.6.tgz", + "integrity": "sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.6", + "@babel/types": "^7.23.6", + "debug": "^4.3.1", + "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.12.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", - "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", + "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.19", + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" } }, @@ -9480,13 +8022,6 @@ "@ethersproject/bytes": "^5.7.0", "@ethersproject/logger": "^5.7.0", "bn.js": "^5.2.1" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - } } }, "@ethersproject/bytes": { @@ -9536,9 +8071,9 @@ "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==" }, "@ethersproject/networks": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.0.tgz", - "integrity": "sha512-MG6oHSQHd4ebvJrleEQQ4HhVu8Ichr0RDYEfHzsVAVjHNM+w36x9wp9r+hf1JstMXtseXDtkiVoARAG6M959AA==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", "requires": { "@ethersproject/logger": "^5.7.0" } @@ -9571,13 +8106,6 @@ "bn.js": "^5.2.1", "elliptic": "6.5.4", "hash.js": "1.1.7" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - } } }, "@ethersproject/strings": { @@ -9607,9 +8135,9 @@ } }, "@ethersproject/web": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.0.tgz", - "integrity": "sha512-ApHcbbj+muRASVDSCl/tgxaH2LBkRMEYfLOLVa0COipx0+nlu0QKet7U2lEg0vdkh8XRSLf2nd1f1Uk9SrVSGA==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", "requires": { "@ethersproject/base64": "^5.7.0", "@ethersproject/bytes": "^5.7.0", @@ -9618,39 +8146,52 @@ "@ethersproject/strings": "^5.7.0" } }, - "@nicolo-ribaudo/chokidar-2": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8.tgz", - "integrity": "sha512-FohwULwAebCUKi/akMFyGi7jfc7JXTeMHzKxuP3umRd9mK/2Y7/SMBSI2jX+YLopPXi+PF9l307NmpfxTdCegA==", + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, - "optional": true, "requires": { - "chokidar": "2.1.8" - }, - "dependencies": { - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "optional": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - } + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "@nicolo-ribaudo/chokidar-2": { + "version": "2.1.8-no-fsevents.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", + "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", + "dev": true, + "optional": true + }, "@rsksmart/nod3": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/@rsksmart/nod3/-/nod3-0.5.0.tgz", @@ -9665,25 +8206,10 @@ "rlp": "^2.2.4" } }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, - "requires": { - "defer-to-connect": "^1.0.1" - } - }, "@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, "abbrev": { @@ -9701,7 +8227,7 @@ "acorn-jsx": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "integrity": "sha512-AU7pnZkguthwBjKgCg6998ByQNIMjbuDQZ8bb78QAFZwPfmKia8AIzgY/gWgqCjnht8JLdXmB4YxA0KaV60ncQ==", "dev": true, "requires": { "acorn": "^3.0.4" @@ -9710,7 +8236,7 @@ "acorn": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "integrity": "sha512-OLUyIIZ7mF5oaAUT1w0TFqQS81q3saT46x8t7ukpPjMNk+nbs4ZHhs7ToV8EWnLYLepjETXd4XaCE4uxkMeqUw==", "dev": true } } @@ -9718,7 +8244,7 @@ "ajv": { "version": "5.5.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "integrity": "sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==", "dev": true, "requires": { "co": "^4.6.0", @@ -9730,47 +8256,10 @@ "ajv-keywords": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "integrity": "sha512-ZFztHzVRdGLAzJmpUT9LNFLe1YiVOEylcaNpEutM26PVTCtOD919IMfD01CgbRouB42Dd9atjx1HseC15DgOZA==", "dev": true, "requires": {} }, - "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "dev": true, - "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, "ansi-colors": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", @@ -9784,9 +8273,9 @@ "dev": true }, "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", "dev": true }, "ansi-styles": { @@ -9799,26 +8288,13 @@ } }, "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, - "optional": true, "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "optional": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } }, "argparse": { @@ -9830,76 +8306,92 @@ "sprintf-js": "~1.0.2" } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", "dev": true, - "optional": true + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", "dev": true, - "optional": true + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" + } }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", "dev": true, - "optional": true + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + } }, - "array-includes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", - "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", + "array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", - "is-string": "^1.0.5" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" } }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, - "optional": true + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + } }, - "array.prototype.flat": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", - "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "array.prototype.reduce": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz", + "integrity": "sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - }, - "dependencies": { - "es-abstract": { - "version": "1.18.0-next.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", - "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + } + }, + "arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" } }, "assertion-error": { @@ -9908,31 +8400,16 @@ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true, - "optional": true - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true, - "optional": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "optional": true + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true }, "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", "dev": true, "requires": { "chalk": "^1.1.3", @@ -9940,16 +8417,22 @@ "js-tokens": "^3.0.2" }, "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", "dev": true }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", "dev": true, "requires": { "ansi-styles": "^2.2.1", @@ -9962,13 +8445,13 @@ "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", "dev": true }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, "requires": { "ansi-regex": "^2.0.0" @@ -9977,100 +8460,60 @@ "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", "dev": true } } }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "babel-plugin-polyfill-corejs2": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz", + "integrity": "sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==", "dev": true, "requires": { - "object.assign": "^4.1.0" + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.4", + "semver": "^6.3.1" } }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "babel-plugin-polyfill-corejs3": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", + "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.4.4", + "core-js-compat": "^3.33.1" + } }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "babel-plugin-polyfill-regenerator": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz", + "integrity": "sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==", "dev": true, - "optional": true, "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "optional": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "optional": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "@babel/helper-define-polyfill-provider": "^0.4.4" } }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, "base-x": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", - "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", "requires": { "safe-buffer": "^5.0.1" } }, "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "optional": true + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true }, "bindings": { "version": "1.5.0", @@ -10083,120 +8526,15 @@ "bip66": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", - "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", + "integrity": "sha512-nemMHz95EmS38a26XbbdxIYj5csHd3RMP3H5bwQknX0WYHF01qhpufP42mLOwVICuH2JmhIhXiWs89MfUGL7Xw==", "requires": { "safe-buffer": "^5.0.1" } }, "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - }, - "boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", - "dev": true, - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, "brace-expansion": { "version": "1.1.11", @@ -10209,40 +8547,18 @@ } }, "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, - "optional": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "fill-range": "^7.0.1" } }, "brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" }, "browser-stdout": { "version": "1.3.1", @@ -10264,101 +8580,51 @@ } }, "browserslist": { - "version": "4.14.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.7.tgz", - "integrity": "sha512-BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001157", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.591", - "escalade": "^3.1.1", - "node-releases": "^1.1.66" + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" } }, "bs58": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", "requires": { "base-x": "^3.0.2" } }, "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "optional": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - } - } + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" }, "call-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", - "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "dev": true, "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.0" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" } }, "caller-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "integrity": "sha512-UJiE1otjXPF5/x+T3zTnSFiTOEmJoGTD9HmBoxnCUwho61a2eSNn/VwtwuIBDAo2SEOv1AJ7ARI5gCmohFLu/g==", "dev": true, "requires": { "callsites": "^0.2.0" @@ -10367,7 +8633,7 @@ "callsites": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "integrity": "sha512-Zv4Dns9IbXXmPkgRRUjAaJQgfN4xX5p6+RQFhWUqscdvvK2xK/ZL8b3IXIJsj+4sD+f24NwnWy2BY8AJ82JB0A==", "dev": true }, "camelcase": { @@ -10377,23 +8643,24 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001159", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001159.tgz", - "integrity": "sha512-w9Ph56jOsS8RL20K9cLND3u/+5WASWdhC/PPrf+V3/HsM3uHOavWOR1Xzakbv4Puo/srmPHudkmCRWM7Aq+/UA==", + "version": "1.0.30001570", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz", + "integrity": "sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==", "dev": true }, "chai": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", - "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", + "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", "dev": true, "requires": { "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.0", - "type-detect": "^4.0.5" + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" } }, "chai-as-promised": { @@ -10419,122 +8686,34 @@ "chardet": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "integrity": "sha512-j/Toj7f1z98Hh2cYo2BVr85EpIRWqUi7rtRSGxh/cqUjqrnJe9l9UE7IUGd2vQ2p+kSHLkSzObQPZPLUC6TQwg==", "dev": true }, "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dev": true, + "requires": { + "get-func-name": "^2.0.2" + } }, "chokidar": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", - "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "requires": { - "anymatch": "~3.1.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "fsevents": "~2.1.2", - "glob-parent": "~5.1.0", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - }, - "dependencies": { - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", - "dev": true - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "dev": true, - "optional": true - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } + "readdirp": "~3.6.0" } }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, "cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", @@ -10550,41 +8729,10 @@ "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", "dev": true }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "optional": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "optional": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true - }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", "dev": true, "requires": { "restore-cursor": "^2.0.0" @@ -10608,9 +8756,9 @@ }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true }, "string-width": { @@ -10635,211 +8783,93 @@ } } }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, "requires": { - "mimic-response": "^1.0.0" + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" } }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "optional": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "colorette": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", - "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", - "dev": true - }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - }, - "dependencies": { - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" } }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true, - "optional": true + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true }, "core-js": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.7.0.tgz", - "integrity": "sha512-NwS7fI5M5B85EwpWuIwJN4i/fbisQUwLwiSNUWeXlkAZ0sbBjLEvLvFLf1uzAUV66PcEPt4xCGCmOZSxVf3xzA==", + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.34.0.tgz", + "integrity": "sha512-aDdvlDder8QmY91H88GzNi9EtQi2TjvQhpCX6B1v/dAZHU1AuLgHvRh54RiOerpEhEW46Tkf+vgAViB/CWC0ag==", "dev": true }, "core-js-compat": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.7.0.tgz", - "integrity": "sha512-V8yBI3+ZLDVomoWICO6kq/CD28Y4r1M7CWeO4AGpMdMfseu8bkSubBmUPySMGKRTS+su4XQ07zUkAsiu9FCWTg==", + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.34.0.tgz", + "integrity": "sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==", "dev": true, "requires": { - "browserslist": "^4.14.6", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } + "browserslist": "^4.22.2" } }, "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, "create-hash": { @@ -10870,130 +8900,82 @@ "cross-spawn": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", "dev": true, "requires": { "lru-cache": "^4.0.1", "shebang-command": "^1.2.0", "which": "^1.2.9" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + } } }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true - }, "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "2.1.2" } }, "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true, - "optional": true - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, "deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", "dev": true, "requires": { "type-detect": "^4.0.0" } }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", "dev": true, "requires": { - "object-keys": "^1.0.12" + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" } }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, - "optional": true, "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "optional": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" } }, "diff": { @@ -11011,35 +8993,20 @@ "esutils": "^2.0.2" } }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "requires": { - "is-obj": "^2.0.0" - } - }, "drbg.js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", - "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", + "integrity": "sha512-F4wZ06PvqxYLFEZKkFxTDcns9oFNk34hvmJSEwdzsxVQ8YI5YaxtACgQatkYgv2VI2CFkUd2Y+xosPQnHv809g==", "requires": { "browserify-aes": "^1.0.6", "create-hash": "^1.1.2", "create-hmac": "^1.1.4" } }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, "electron-to-chromium": { - "version": "1.3.599", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.599.tgz", - "integrity": "sha512-u6VGpFsIzSCNrWJb1I72SUypz3EGoBaiEgygoMkd0IOcGR3WF3je5VTx9OIRI9Qd8UOMHinLImyJFkYHTq6nsg==", + "version": "1.4.615", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.615.tgz", + "integrity": "sha512-/bKPPcgZVUziECqDc+0HkT87+0zhaWSZHNXqF8FLd2lQcptpmUFwoCSWjCdOng9Gdq+afKArPdEg/0ZW461Eng==", "dev": true }, "elliptic": { @@ -11054,6 +9021,13 @@ "inherits": "^2.0.4", "minimalistic-assert": "^1.0.1", "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } } }, "emoji-regex": { @@ -11062,41 +9036,77 @@ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "es-abstract": { + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", "dev": true, "requires": { - "once": "^1.4.0" - } + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.5", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.2", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.13" + } + }, + "es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "es-set-tostringtag": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" } }, - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" + "hasown": "^2.0.0" } }, "es-to-primitive": { @@ -11116,16 +9126,10 @@ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true }, - "escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "dev": true - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true }, "eslint": { @@ -11175,18 +9179,18 @@ }, "dependencies": { "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { "ms": "^2.1.1" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true } } @@ -11199,108 +9203,79 @@ "requires": {} }, "eslint-import-resolver-node": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", - "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, "requires": { - "debug": "^2.6.9", - "resolve": "^1.13.1" + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } } }, "eslint-module-utils": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", - "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, "requires": { - "debug": "^2.6.9", - "pkg-dir": "^2.0.0" + "debug": "^3.2.7" }, "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { - "find-up": "^2.1.0" + "ms": "^2.1.1" } } } }, "eslint-plugin-import": { - "version": "2.22.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz", - "integrity": "sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==", - "dev": true, - "requires": { - "array-includes": "^3.1.1", - "array.prototype.flat": "^1.2.3", - "contains-path": "^0.1.0", - "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.4", - "eslint-module-utils": "^2.6.0", - "has": "^1.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.1", - "read-pkg-up": "^2.0.0", - "resolve": "^1.17.0", - "tsconfig-paths": "^3.9.0" + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "dev": true, + "requires": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" }, "dependencies": { - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" + "ms": "^2.1.1" } } } @@ -11334,6 +9309,14 @@ "minimatch": "^3.0.4", "resolve": "^1.3.3", "semver": "^5.4.1" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + } } }, "eslint-plugin-promise": { @@ -11382,18 +9365,18 @@ "dev": true }, "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "requires": { "estraverse": "^5.1.0" }, "dependencies": { "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true } } @@ -11408,9 +9391,9 @@ }, "dependencies": { "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true } } @@ -11436,153 +9419,21 @@ "safe-buffer": "^5.1.1" } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "optional": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "optional": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "optional": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "optional": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, "external-editor": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "dev": true, - "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "optional": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "optional": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "optional": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "dev": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" } }, "fast-deep-equal": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "integrity": "sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw==", "dev": true }, "fast-json-stable-stringify": { @@ -11594,13 +9445,13 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", "dev": true, "requires": { "escape-string-regexp": "^1.0.5" @@ -11609,7 +9460,7 @@ "file-entry-cache": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "integrity": "sha512-uXP/zGzxxFvFfcZGgBIwotm+Tdc55ddPAzF7iHshP4YGaXMww7rSF9peD9D1sui5ebONg5UobsZv+FfgEpGv/w==", "dev": true, "requires": { "flat-cache": "^1.2.1", @@ -11622,28 +9473,12 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, - "optional": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "to-regex-range": "^5.0.1" } }, "find-cache-dir": { @@ -11673,14 +9508,6 @@ "dev": true, "requires": { "is-buffer": "~2.0.3" - }, - "dependencies": { - "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true - } } }, "flat-cache": { @@ -11695,21 +9522,13 @@ "write": "^0.2.1" } }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true, - "optional": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, - "optional": true, "requires": { - "map-cache": "^0.2.2" + "is-callable": "^1.1.3" } }, "fs-readdir-recursive": { @@ -11721,30 +9540,44 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } + "optional": true }, "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true }, + "function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + } + }, "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true }, "gensync": { @@ -11760,82 +9593,54 @@ "dev": true }, "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true }, "get-intrinsic": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz", - "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "dev": true, "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" } }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "dev": true, "requires": { - "pump": "^3.0.0" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" } }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true, - "optional": true - }, "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "optional": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "global-dirs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", - "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { - "ini": "^1.3.5" + "is-glob": "^4.0.1" } }, "globals": { @@ -11844,29 +9649,28 @@ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dev": true, "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" + "get-intrinsic": "^1.1.3" } }, "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, "growl": { @@ -11875,77 +9679,65 @@ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, "has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", "dev": true, "requires": { "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + } } }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true }, - "has-symbols": { + "has-property-descriptors": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", "dev": true, - "optional": true, "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "get-intrinsic": "^1.2.2" } }, - "has-values": { + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-tostringtag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, - "optional": true, "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "has-symbols": "^1.0.2" } }, - "has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true - }, "hash-base": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", @@ -11954,6 +9746,18 @@ "inherits": "^2.0.4", "readable-stream": "^3.6.0", "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, "hash.js": { @@ -11965,6 +9769,15 @@ "minimalistic-assert": "^1.0.1" } }, + "hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "requires": { + "function-bind": "^1.1.2" + } + }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -11974,7 +9787,7 @@ "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", "requires": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", @@ -11990,18 +9803,6 @@ "parse-passwd": "^1.0.0" } }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -12020,25 +9821,19 @@ "ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", - "dev": true - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", "dev": true }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "requires": { "once": "^1.3.0", @@ -12050,12 +9845,6 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, "inquirer": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", @@ -12078,225 +9867,145 @@ "through": "^2.3.6" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "internal-slot": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", "dev": true, - "optional": true, "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" } }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", "dev": true, - "optional": true, "requires": { - "binary-extensions": "^1.0.0" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true, - "optional": true - }, - "is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", - "dev": true - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, "requires": { - "ci-info": "^2.0.0" + "has-bigints": "^1.0.1" } }, - "is-core-module": { + "is-binary-path": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", - "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "requires": { - "has": "^1.0.3" + "binary-extensions": "^2.0.0" } }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, - "optional": true, "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, - "optional": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "optional": true - } + "hasown": "^2.0.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, - "optional": true + "requires": { + "has-tostringtag": "^1.0.0" + } }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "dev": true }, "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { "is-extglob": "^2.1.1" } }, - "is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", - "dev": true, - "requires": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" - } - }, "is-negative-zero": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", - "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true }, - "is-npm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", - "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, - "optional": true, "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "has-tostringtag": "^1.0.0" } }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true - }, - "is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", - "dev": true - }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, - "optional": true, "requires": { "isobject": "^3.0.1" } }, "is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "requires": { - "has-symbols": "^1.0.1" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } }, "is-resolvable": { @@ -12305,58 +10014,68 @@ "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", "dev": true }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, "is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", - "dev": true + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } }, "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, "requires": { - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.2" } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "requires": { + "which-typed-array": "^1.1.11" + } }, - "is-windows": { + "is-weakref": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, - "optional": true - }, - "is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true + "requires": { + "call-bind": "^1.0.2" + } }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "optional": true + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true }, "js-sha3": { "version": "0.8.0", @@ -12370,9 +10089,9 @@ "dev": true }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -12385,37 +10104,28 @@ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, "json-schema-traverse": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "integrity": "sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA==", "dev": true }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true }, "jsonc-parser": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz", - "integrity": "sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", "dev": true }, "keccak": { @@ -12429,61 +10139,22 @@ "safe-buffer": "^5.2.0" } }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "requires": { - "json-buffer": "3.0.0" - } - }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "optional": true - }, - "latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dev": true, - "requires": { - "package-json": "^6.3.0" - } + "dev": true }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", "dev": true, "requires": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" } }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -12495,9 +10166,15 @@ } }, "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, "log-symbols": { @@ -12509,20 +10186,22 @@ "chalk": "^2.4.2" } }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true + "loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dev": true, + "requires": { + "get-func-name": "^2.0.1" + } }, "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "yallist": "^3.0.2" } }, "make-dir": { @@ -12533,23 +10212,14 @@ "requires": { "pify": "^4.0.1", "semver": "^5.6.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true, - "optional": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "optional": true, - "requires": { - "object-visit": "^1.0.0" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + } } }, "md5.js": { @@ -12562,40 +10232,12 @@ "safe-buffer": "^5.1.2" } }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "optional": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, "mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true - }, "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -12604,53 +10246,30 @@ "minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" }, "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "optional": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "optional": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "requires": { - "minimist": "^1.2.5" + "minimist": "^1.2.6" } }, "mocha": { @@ -12685,31 +10304,6 @@ "yargs-unparser": "1.6.0" }, "dependencies": { - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", - "dev": true - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, "chokidar": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", @@ -12735,15 +10329,6 @@ "ms": "^2.1.1" } }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, "fsevents": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", @@ -12765,38 +10350,32 @@ "path-is-absolute": "^1.0.0" } }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "dev": true, "requires": { - "is-glob": "^4.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "binary-extensions": "^2.0.0" + "brace-expansion": "^1.1.7" } }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "minimist": "^1.2.5" } }, "ms": { @@ -12834,59 +10413,30 @@ "requires": { "has-flag": "^3.0.0" } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } } } }, "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==", "dev": true }, "nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "optional": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", + "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==" }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, "node-environment-flags": { @@ -12897,51 +10447,53 @@ "requires": { "object.getownpropertydescriptors": "^2.0.3", "semver": "^5.7.0" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + } } }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "dev": true - }, "node-releases": { - "version": "1.1.67", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.67.tgz", - "integrity": "sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, "nodemon": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.6.tgz", - "integrity": "sha512-4I3YDSKXg6ltYpcnZeHompqac4E6JeAMpGm8tJnB9Y3T0ehasLa4139dJOcCrB93HHrUMsCrKtoAlXTqT5n4AQ==", + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", + "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", "dev": true, "requires": { - "chokidar": "^3.2.2", - "debug": "^3.2.6", + "chokidar": "^3.5.2", + "debug": "^3.2.7", "ignore-by-default": "^1.0.1", - "minimatch": "^3.0.4", - "pstree.remy": "^1.1.7", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", "semver": "^5.7.1", + "simple-update-notifier": "^1.0.7", "supports-color": "^5.5.0", "touch": "^3.1.0", - "undefsafe": "^2.0.3", - "update-notifier": "^4.1.0" + "undefsafe": "^2.0.5" }, "dependencies": { "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { "ms": "^2.1.1" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true } } @@ -12949,80 +10501,28 @@ "nopt": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", "dev": true, "requires": { "abbrev": "1" } }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, - "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", - "dev": true - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "optional": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "optional": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "object-inspect": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "dev": true }, "object-keys": { @@ -13031,64 +10531,69 @@ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, - "optional": true, "requires": { - "isobject": "^3.0.0" + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" } }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" } }, "object.getownpropertydescriptors": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz", + "integrity": "sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" + "array.prototype.reduce": "^1.0.6", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "safe-array-concat": "^1.0.0" } }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", "dev": true, - "optional": true, "requires": { - "isobject": "^3.0.1" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" } }, "object.values": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", - "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" } }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "requires": { "wrappy": "1" @@ -13097,7 +10602,7 @@ "onetime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", "dev": true, "requires": { "mimic-fn": "^1.0.0" @@ -13126,13 +10631,7 @@ "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true }, "p-limit": { @@ -13159,106 +10658,52 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, - "package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dev": true, - "requires": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, "parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", "dev": true }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true, - "optional": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true, - "optional": true - }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true }, "path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", "dev": true }, "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, "pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "dev": true }, "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "pify": { @@ -13268,13 +10713,10 @@ "dev": true }, "pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", - "dev": true, - "requires": { - "node-modules-regexp": "^1.0.0" - } + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true }, "pkg-dir": { "version": "3.0.0", @@ -13291,23 +10733,10 @@ "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", "dev": true }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true, - "optional": true - }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", "dev": true }, "process-nextick-args": { @@ -13325,33 +10754,14 @@ "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", "dev": true }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, - "requires": { - "escape-goat": "^2.0.0" - } + "pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true }, "ramda": { "version": "0.26.1", @@ -13359,139 +10769,36 @@ "integrity": "sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==", "dev": true }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" }, "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true } } }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, - "optional": true, "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "optional": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } + "picomatch": "^2.2.1" } }, "regenerate": { @@ -13501,38 +10808,38 @@ "dev": true }, "regenerate-unicode-properties": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", "dev": true, "requires": { - "regenerate": "^1.4.0" + "regenerate": "^1.4.2" } }, "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", "dev": true }, "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, "requires": { "@babel/runtime": "^7.8.4" } }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "regexp.prototype.flags": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dev": true, - "optional": true, "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" } }, "regexpp": { @@ -13542,47 +10849,23 @@ "dev": true }, "regexpu-core": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", - "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", - "dev": true, - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" - } - }, - "registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dev": true, - "requires": { - "rc": "^1.2.8" - } - }, - "registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, "requires": { - "rc": "^1.2.8" + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" } }, - "regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", - "dev": true - }, "regjsparser": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", - "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, "requires": { "jsesc": "~0.5.0" @@ -13591,36 +10874,15 @@ "jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "dev": true } } }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true, - "optional": true - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true, - "optional": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true, - "optional": true - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true }, "require-main-filename": { @@ -13632,7 +10894,7 @@ "require-uncached": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "integrity": "sha512-Xct+41K3twrbBHdxAgMoOS+cNcoqIjfM2/VxBF4LL2hVph7YsF8VSKyQ3BDFZwEVbok9yeDl2le/qo0S77WG2w==", "dev": true, "requires": { "caller-path": "^0.1.0", @@ -13640,54 +10902,32 @@ } }, "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "requires": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, "resolve-from": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "integrity": "sha512-kT10v4dhrlLNcnO084hEjvXCI1wUG9qZLoz2RogxqDQQYy7IxjI/iMUkOtQTNEh6rzHxvdQWHsJyel1pKOVCxg==", "dev": true }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true, - "optional": true - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "requires": { - "lowercase-keys": "^1.0.0" - } - }, "restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", "dev": true, "requires": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" } }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, - "optional": true - }, "rimraf": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", @@ -13707,11 +10947,11 @@ } }, "rlp": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", - "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", + "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", "requires": { - "bn.js": "^4.11.1" + "bn.js": "^5.2.0" } }, "run-async": { @@ -13723,31 +10963,52 @@ "rx-lite": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "integrity": "sha512-Cun9QucwK6MIrp3mry/Y7hqD1oFqTYLQ4pGxaHTjIdaFDWRGGLikqp6u8LcWJnzpoALg9hap+JGk8sFIUuEGNA==", "dev": true }, "rx-lite-aggregates": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "integrity": "sha512-3xPNZGW93oCjiO7PtKxRK6iOVYBWBvtf9QHDfU23Oc+dLIQmAV//UnyXV/yihv81VS/UqoQPk4NegS8EFi55Hg==", "dev": true, "requires": { "rx-lite": "*" } }, + "safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + } + } + }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", "dev": true, - "optional": true, "requires": { - "ret": "~0.1.10" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" } }, "safer-buffer": { @@ -13769,60 +11030,48 @@ "elliptic": "^6.5.2", "nan": "^2.14.0", "safe-buffer": "^5.1.2" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dev": true, - "requires": { - "semver": "^6.3.0" }, "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" } } }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "dev": true }, - "set-value": { + "set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dev": true, + "requires": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, + "set-function-name": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", "dev": true, - "optional": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" } }, "sha.js": { @@ -13834,10 +11083,19 @@ "safe-buffer": "^5.0.1" } }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "dev": true, "requires": { "shebang-regex": "^1.0.0" @@ -13846,271 +11104,95 @@ "shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", "dev": true }, - "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "optional": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "optional": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "optional": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "optional": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "optional": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, - "optional": true, "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" } }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "optional": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "simple-update-notifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", + "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", "dev": true, "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "semver": "~7.0.0" }, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", "dev": true } } }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true, - "optional": true - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", "dev": true }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "is-fullwidth-code-point": "^2.0.0" } }, - "spdx-license-ids": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", - "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, - "optional": true, "requires": { - "extend-shallow": "^3.0.0" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "optional": true, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" + "safe-buffer": "~5.1.0" }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "optional": true, - "requires": { - "is-descriptor": "^0.1.0" - } + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -14121,97 +11203,58 @@ "strip-ansi": "^4.0.0" } }, + "string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, "string.prototype.trimend": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz", - "integrity": "sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - }, - "dependencies": { - "es-abstract": { - "version": "1.18.0-next.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", - "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" } }, "string.prototype.trimstart": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz", - "integrity": "sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - }, - "dependencies": { - "es-abstract": { - "version": "1.18.0-next.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", - "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" } }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", "dev": true, "requires": { "ansi-regex": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - } } }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true }, "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", "dev": true }, "supports-color": { @@ -14223,6 +11266,12 @@ "has-flag": "^3.0.0" } }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, "table": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", @@ -14237,22 +11286,16 @@ "string-width": "^2.1.1" } }, - "term-size": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", - "dev": true - }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, "tmp": { @@ -14267,59 +11310,16 @@ "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "optional": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "optional": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-number": "^7.0.0" } }, "touch": { @@ -14332,21 +11332,21 @@ } }, "tsconfig-paths": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", - "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, "requires": { "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", + "json5": "^1.0.2", + "minimist": "^1.2.6", "strip-bom": "^3.0.0" }, "dependencies": { "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "requires": { "minimist": "^1.2.0" @@ -14357,7 +11357,7 @@ "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", "dev": true, "requires": { "prelude-ls": "~1.1.2" @@ -14369,236 +11369,119 @@ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", "dev": true, "requires": { - "is-typedarray": "^1.0.0" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" } }, - "undefsafe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", - "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", + "typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", "dev": true, "requires": { - "debug": "^2.2.0" + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" } }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", - "dev": true + "typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } }, - "unicode-match-property-ecmascript": { + "typed-array-length": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", "dev": true, "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" } }, - "unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, - "optional": true, "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" } }, - "unique-string": { + "undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "requires": { - "crypto-random-string": "^2.0.0" - } + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, - "optional": true, "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "optional": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "optional": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true, - "optional": true - } + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" } }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true, - "optional": true - }, - "update-notifier": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", - "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", - "dev": true, - "requires": { - "boxen": "^4.2.0", - "chalk": "^3.0.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.1", - "is-npm": "^4.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.0.0", - "pupa": "^2.0.1", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } + "unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true, - "optional": true + "unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "requires": { - "prepend-http": "^2.0.0" + "escalade": "^3.1.1", + "picocolors": "^1.0.0" } }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, - "optional": true - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "v8flags": { "version": "3.2.0", @@ -14609,23 +11492,13 @@ "homedir-polyfill": "^1.0.1" } }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, "vscode-json-languageservice": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-3.10.0.tgz", - "integrity": "sha512-8IvuRSQnjznu+obqy6Dy4S4H68Ke7a3Kb+A0FcdctyAMAWEnrORpCpMOMqEYiPLm/OTYLVWJ7ql3qToDTozu4w==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-3.11.0.tgz", + "integrity": "sha512-QxI+qV97uD7HHOCjh3MrM1TfbdwmTXrMckri5Tus1/FQiG3baDZb2C9Y0y8QThs7PwHYBIQXcAc59ZveCRZKPA==", "dev": true, "requires": { - "jsonc-parser": "^2.3.1", + "jsonc-parser": "^3.0.0", "vscode-languageserver-textdocument": "^1.0.1", "vscode-languageserver-types": "3.16.0-next.2", "vscode-nls": "^5.0.0", @@ -14633,9 +11506,9 @@ } }, "vscode-languageserver-textdocument": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.1.tgz", - "integrity": "sha512-UIcJDjX7IFkck7cSkNNyzIz5FyvpQfY7sdzVy+wkKN/BLaD4DQ0ppXQrKePomCxTS7RrolK1I0pey0bG9eh8dA==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz", + "integrity": "sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==", "dev": true }, "vscode-languageserver-types": { @@ -14645,9 +11518,9 @@ "dev": true }, "vscode-nls": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.0.0.tgz", - "integrity": "sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.2.0.tgz", + "integrity": "sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==", "dev": true }, "vscode-uri": { @@ -14665,12 +11538,38 @@ "isexe": "^2.0.0" } }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", "dev": true }, + "which-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.4", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, "wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", @@ -14680,59 +11579,10 @@ "string-width": "^1.0.2 || 2" } }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, - "requires": { - "string-width": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true }, "wrap-ansi": { @@ -14747,9 +11597,9 @@ }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true }, "string-width": { @@ -14777,36 +11627,18 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, "write": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "integrity": "sha512-CJ17OoULEKXpA5pef3qLj5AxTJ6mSt7g84he2WIskKwqFO4T97d5V7Tadl0DYDk7qyUOQD5WlUlOMChaYrhxeA==", "dev": true, "requires": { "mkdirp": "^0.5.1" } }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true - }, "y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", @@ -14814,9 +11646,9 @@ "dev": true }, "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "yargs": { @@ -14838,9 +11670,9 @@ }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true }, "string-width": { diff --git a/package.json b/package.json index 00f0cd4..2200a3c 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@rsksmart/rsk-contract-parser", - "version": "1.0.2", + "version": "1.0.3", "description": "", "main": "dist/index.js", "scripts": { diff --git a/src/lib/ContractParser.js b/src/lib/ContractParser.js index fce9ab5..07403dd 100755 --- a/src/lib/ContractParser.js +++ b/src/lib/ContractParser.js @@ -137,7 +137,8 @@ export class ContractParser { const res = await contract.call(method, params, options) return res } catch (err) { - this.log.warn(`Method ${method} call ${err}`) + // temporary fix to avoid errored contract calls spam logs + // this.log.warn(`Method ${method} call ${err}`) return null } } diff --git a/src/lib/EventDecoder.js b/src/lib/EventDecoder.js index 92bf5f1..2a15f93 100755 --- a/src/lib/EventDecoder.js +++ b/src/lib/EventDecoder.js @@ -59,7 +59,10 @@ function EventDecoder (abi, logger) { abi: JSON.parse(eventFragment.format('json')) }) } catch (e) { - logger.error(e) + // temporary fix to avoid ethers "no matching event" error spam + if (!e.message.includes('no matching event')) { + logger.error(e) + } return log } } From 9edc55ab830b75eb4f43c873a0ea458795a1638a Mon Sep 17 00:00:00 2001 From: Dario Date: Tue, 19 Dec 2023 00:35:28 -0300 Subject: [PATCH 31/33] upload matching dist with src --- dist/examples/getDeployment.js | 3 +- dist/index.js | 9 +- dist/lib/Abi.js | 5 +- dist/lib/BcSearch.js | 15 +-- dist/lib/Contract.js | 7 +- dist/lib/ContractParser.js | 35 +++---- dist/lib/ContractParser.js.map | 2 +- dist/lib/EventDecoder.js | 21 +++-- dist/lib/EventDecoder.js.map | 2 +- dist/lib/btcUtils.js | 27 +++--- dist/lib/compileJsonAbis.js | 21 +++-- dist/lib/interfacesIds.js | 31 ++++--- dist/lib/nativeContracts/FakeABI.js | 93 ++++++++++--------- dist/lib/nativeContracts/NativeContracts.js | 23 ++--- .../nativeContracts/NativeContractsDecoder.js | 5 +- .../nativeContracts/NativeContractsEvents.js | 27 +++--- dist/lib/nativeContracts/bridgeAbi.js | 11 ++- dist/lib/nod3Connect.js | 13 +-- dist/lib/types.js | 27 +++--- dist/lib/utils.js | 51 +++++----- 20 files changed, 223 insertions(+), 205 deletions(-) diff --git a/dist/examples/getDeployment.js b/dist/examples/getDeployment.js index bd42546..a0a7703 100644 --- a/dist/examples/getDeployment.js +++ b/dist/examples/getDeployment.js @@ -38,4 +38,5 @@ function help(msg) { console.log(`Set environment variable URL to change node url`); console.log(`Example: export URL=http://localhost:4444`); process.exit(0); -} \ No newline at end of file +} +//# sourceMappingURL=getDeployment.js.map \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index a8f377d..012e0b9 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,15 +1,16 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });Object.defineProperty(exports, "ContractParser", { enumerable: true, get: function () {return _ContractParser.ContractParser;} });Object.defineProperty(exports, "BcSearch", { enumerable: true, get: function () {return _BcSearch.BcSearch;} });Object.defineProperty(exports, "Contract", { enumerable: true, get: function () {return _Contract.default;} });exports.default = exports.abi = void 0;var _ContractParser = require("./lib/ContractParser"); +"use strict";Object.defineProperty(exports, "__esModule", { value: true });Object.defineProperty(exports, "BcSearch", { enumerable: true, get: function () {return _BcSearch.BcSearch;} });Object.defineProperty(exports, "Contract", { enumerable: true, get: function () {return _Contract.default;} });Object.defineProperty(exports, "ContractParser", { enumerable: true, get: function () {return _ContractParser.ContractParser;} });exports.default = exports.abi = void 0;var _ContractParser = require("./lib/ContractParser"); var _BcSearch = require("./lib/BcSearch"); var _Contract = _interopRequireDefault(require("./lib/Contract")); var _bridgeAbi = require("./lib/nativeContracts/bridgeAbi");function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} -const abi = { bridge: _bridgeAbi.getBridgeAbi };exports.abi = abi;var _default = +const abi = exports.abi = { bridge: _bridgeAbi.getBridgeAbi };var _default = exports.default = _ContractParser.ContractParser; // HOTFIX: because the dependency @ethersproject/abi:5.7.0 spam the logs with 'duplicate definition' warning, this temporary fix should silence those messages until a newer version of the library fixes the issue -exports.default = _default;const originalConsoleLog = console.log; +const originalConsoleLog = console.log; console.log = function (message) { if (!String(message).includes('duplicate definition')) { originalConsoleLog(message); } -}; \ No newline at end of file +}; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/lib/Abi.js b/dist/lib/Abi.js index 8be5623..6ab57d7 100755 --- a/dist/lib/Abi.js +++ b/dist/lib/Abi.js @@ -1,2 +1,3 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _compiled_abi = _interopRequireDefault(require("./compiled_abi.json"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}var _default = -_compiled_abi.default;exports.default = _default; \ No newline at end of file +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _compiled_abi = _interopRequireDefault(require("./compiled_abi.json"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}var _default = exports.default = +_compiled_abi.default; +//# sourceMappingURL=Abi.js.map \ No newline at end of file diff --git a/dist/lib/BcSearch.js b/dist/lib/BcSearch.js index 675b0e5..9430283 100644 --- a/dist/lib/BcSearch.js +++ b/dist/lib/BcSearch.js @@ -2,7 +2,7 @@ var _rskUtils = require("@rsksmart/rsk-utils"); function BcSearch(nod3) { - const getBlock = hashOrNumber => { + const getBlock = (hashOrNumber) => { return nod3.eth.getBlock(hashOrNumber); }; @@ -27,7 +27,7 @@ function BcSearch(nod3) { }; const deploymentBlock = (address, highBlock, lowBlock) => { - return block(blockNumber => isContractAtBlock(address, blockNumber), highBlock, lowBlock); + return block((blockNumber) => isContractAtBlock(address, blockNumber), highBlock, lowBlock); }; const searchReceipt = async (transactions, cb) => { for (let tx of transactions) { @@ -44,11 +44,11 @@ function BcSearch(nod3) { try { blockNumber = blockNumber || (await deploymentBlock(address, highBlock)); block = block || (await nod3.eth.getBlock(blockNumber, true)); - let transactions = block.transactions.filter(tx => !(0, _rskUtils.isAddress)(tx.to)); - let transaction = await searchReceipt(transactions, receipt => receipt.contractAddress === address); + let transactions = block.transactions.filter((tx) => !(0, _rskUtils.isAddress)(tx.to)); + let transaction = await searchReceipt(transactions, (receipt) => receipt.contractAddress === address); if (!transaction) {// internal transactions blockTrace = blockTrace || (await nod3.trace.block(block.hash)); - let internalTx = blockTrace.find(trace => isItxDeployment(address, trace)); + let internalTx = blockTrace.find((trace) => isItxDeployment(address, trace)); if (internalTx) transaction = { internalTx }; } if (transaction) transaction.timestamp = block.timestamp; @@ -59,6 +59,7 @@ function BcSearch(nod3) { }; return Object.freeze({ block, deploymentBlock, deploymentTx, isItxDeployment }); -}var _default = +}var _default = exports.default = -BcSearch;exports.default = _default; \ No newline at end of file +BcSearch; +//# sourceMappingURL=BcSearch.js.map \ No newline at end of file diff --git a/dist/lib/Contract.js b/dist/lib/Contract.js index 5fff330..0cfa450 100755 --- a/dist/lib/Contract.js +++ b/dist/lib/Contract.js @@ -4,11 +4,11 @@ function Contract(abi, { address, nod3 } = {}) { if (!abi || typeof abi !== 'object') throw new Error('Invalid abi'); const contractInterface = new _abi.Interface(abi); - const at = newAddress => { + const at = (newAddress) => { address = newAddress; }; - const setNod3 = nod3Instance => { + const setNod3 = (nod3Instance) => { nod3 = nod3Instance; }; @@ -37,4 +37,5 @@ function Contract(abi, { address, nod3 } = {}) { } }; return Object.freeze({ at, setNod3, encodeCall, decodeCall, call }); -} \ No newline at end of file +} +//# sourceMappingURL=Contract.js.map \ No newline at end of file diff --git a/dist/lib/ContractParser.js b/dist/lib/ContractParser.js index ad41850..b31c937 100755 --- a/dist/lib/ContractParser.js +++ b/dist/lib/ContractParser.js @@ -16,8 +16,8 @@ var _utils = require("./utils");function _interopRequireDefault(obj) {return obj function mapInterfacesToERCs(interfaces) { return Object.keys(interfaces). - filter(k => interfaces[k] === true). - map(t => _types.contractsInterfaces[t] || t); + filter((k) => interfaces[k] === true). + map((t) => _types.contractsInterfaces[t] || t); } function hasMethodSelector(txInputData, selector) { @@ -67,8 +67,8 @@ class ContractParser { getAbiMethods() { let methods = {}; - this.abi.filter(def => def.type === 'function'). - map(m => { + this.abi.filter((def) => def.type === 'function'). + map((m) => { let sig = m[_types.ABI_SIGNATURE] || (0, _utils.abiSignatureData)(m); sig.name = m.name; methods[sig.method] = sig; @@ -77,7 +77,7 @@ class ContractParser { } parseTxLogs(logs, abi) { - return this.decodeLogs(logs, abi).map(event => { + return this.decodeLogs(logs, abi).map((event) => { this.addEventAddresses(event); event.abi = (0, _utils.removeAbiSignatureData)(event.abi); return event; @@ -96,7 +96,7 @@ class ContractParser { if (v.type === 'address[]') { let value = args[i] || []; if (Array.isArray(value)) {// temp fix to undecoded events - value.forEach(v => _addresses.push(v)); + value.forEach((v) => _addresses.push(v)); } else { let i = 0; while (2 + (i + 1) * 40 <= value.length) { @@ -119,7 +119,7 @@ class ContractParser { } const { isNativeContract } = this.nativeContracts; const { nativeContractsEvents } = this; - return logs.map(log => { + return logs.map((log) => { const { address } = log; const decoder = isNativeContract(address) ? nativeContractsEvents.getEventDecoder(log) : eventDecoder; return decoder.decodeLog(log); @@ -146,11 +146,11 @@ class ContractParser { async getTokenData(contract, { methods } = {}) { methods = methods || ['name', 'symbol', 'decimals', 'totalSupply']; let result = await Promise.all( - methods.map((m) => - this.call(m, contract). - then(res => res). - catch(err => this.log.debug(`[${contract.address}] Error executing ${m} Error: ${err}`)))); - + methods.map((m) => + this.call(m, contract). + then((res) => res). + catch((err) => this.log.debug(`[${contract.address}] Error executing ${m} Error: ${err}`))) + ); return result.reduce((v, a, i) => { let name = methods[i]; v[name] = a; @@ -161,7 +161,7 @@ class ContractParser { getMethodsBySelectors(txInputData) { let methods = this.getMethodsSelectors(); return Object.keys(methods). - filter(method => hasMethodSelector(txInputData, methods[method]) === true); + filter((method) => hasMethodSelector(txInputData, methods[method]) === true); } async getContractInfo(txInputData, contract) { @@ -231,7 +231,7 @@ class ContractParser { getInterfacesByMethods(methods, isErc165) { return Object.keys(_interfacesIds.default). - map(i => { + map((i) => { return [i, (0, _rskUtils.includesAll)(methods, _interfacesIds.default[i].methods)]; }). reduce((obj, value) => { @@ -258,7 +258,8 @@ class ContractParser { } catch (err) { return Promise.reject(err); } - }}exports.ContractParser = ContractParser;var _default = - + } +}exports.ContractParser = ContractParser;var _default = exports.default = -ContractParser;exports.default = _default; \ No newline at end of file +ContractParser; +//# sourceMappingURL=ContractParser.js.map \ No newline at end of file diff --git a/dist/lib/ContractParser.js.map b/dist/lib/ContractParser.js.map index 9cf0bb9..6bde39f 100644 --- a/dist/lib/ContractParser.js.map +++ b/dist/lib/ContractParser.js.map @@ -1 +1 @@ -{"version":3,"file":"ContractParser.js","names":["_interfacesIds","_interopRequireDefault","require","_rskUtils","_NativeContractsDecoder","_NativeContracts","_Contract","_EventDecoder","_Abi","_types","_utils","obj","__esModule","default","mapInterfacesToERCs","interfaces","Object","keys","filter","k","map","t","contractsInterfaces","hasMethodSelector","txInputData","selector","includes","ContractParser","constructor","abi","log","initConfig","nod3","txBlockNumber","net","netId","id","undefined","setAbi","defaultABI","console","nativeContracts","NativeContracts","bitcoinNetwork","bitcoinRskNetWorks","nativeContractsEvents","NativeContractsDecoder","setNod3","getNativeContractAddress","name","getMethodsSelectors","selectors","methods","getAbiMethods","m","method","signature","soliditySignature","soliditySelector","def","type","sig","ABI_SIGNATURE","abiSignatureData","parseTxLogs","logs","decodeLogs","event","addEventAddresses","removeAbiSignatureData","args","_addresses","inputs","forEach","v","i","push","value","Array","isArray","length","slice","Set","eventDecoder","EventDecoder","Error","isNativeContract","address","decoder","getEventDecoder","decodeLog","makeContract","Contract","call","contract","params","options","res","err","warn","getTokenData","result","Promise","all","then","catch","debug","reduce","a","getMethodsBySelectors","getContractInfo","getContractImplementedInterfaces","getEIP1967Info","contractAddress","isUpgradeable","impContractAddress","isERC1967","proxyContractBytecode","getContractCodeFromNode","getInterfacesByMethods","isErc165","includesAll","implementsErc165","getInterfacesERC165","storedValue","eth","getStorageAt","getContractCodeAt","ifaces","interfacesIds","supportsInterface","interfaceId","gas","first","ERC165","second","reject","exports","_default"],"sources":["../../src/lib/ContractParser.js"],"sourcesContent":["import interfacesIds from './interfacesIds'\nimport { includesAll } from '@rsksmart/rsk-utils'\nimport NativeContractsDecoder from './nativeContracts/NativeContractsDecoder'\nimport NativeContracts from './nativeContracts/NativeContracts'\nimport Contract from './Contract'\nimport EventDecoder from './EventDecoder'\nimport defaultABI from './Abi'\nimport { ABI_SIGNATURE, bitcoinRskNetWorks, contractsInterfaces } from './types'\nimport {\n setAbi,\n removeAbiSignatureData,\n abiSignatureData,\n soliditySelector,\n soliditySignature\n} from './utils'\n\nfunction mapInterfacesToERCs (interfaces) {\n return Object.keys(interfaces)\n .filter(k => interfaces[k] === true)\n .map(t => contractsInterfaces[t] || t)\n}\n\nfunction hasMethodSelector (txInputData, selector) {\n return selector && txInputData && txInputData.includes(selector)\n}\n\nexport class ContractParser {\n constructor ({ abi, log, initConfig, nod3, txBlockNumber } = {}) {\n initConfig = initConfig || {}\n const { net } = initConfig\n this.netId = (net) ? net.id : undefined\n this.abi = setAbi(abi || defaultABI)\n this.log = log || console\n this.nod3 = nod3\n this.nativeContracts = NativeContracts(initConfig)\n if (this.netId) {\n let bitcoinNetwork = bitcoinRskNetWorks[this.netId]\n this.nativeContractsEvents = NativeContractsDecoder({ bitcoinNetwork, txBlockNumber })\n }\n }\n\n setNod3 (nod3) {\n this.nod3 = nod3\n }\n\n getNativeContractAddress (name) {\n const { nativeContracts } = this\n if (nativeContracts) {\n return nativeContracts.getNativeContractAddress(name)\n }\n }\n\n setAbi (abi) {\n this.abi = setAbi(abi)\n }\n\n getMethodsSelectors () {\n let selectors = {}\n let methods = this.getAbiMethods()\n for (let m in methods) {\n let method = methods[m]\n let signature = method.signature || soliditySignature(m)\n selectors[m] = soliditySelector(signature)\n }\n return selectors\n }\n\n getAbiMethods () {\n let methods = {}\n this.abi.filter(def => def.type === 'function')\n .map(m => {\n let sig = m[ABI_SIGNATURE] || abiSignatureData(m)\n sig.name = m.name\n methods[sig.method] = sig\n })\n return methods\n }\n\n parseTxLogs (logs, abi) {\n return this.decodeLogs(logs, abi).map(event => {\n this.addEventAddresses(event)\n event.abi = removeAbiSignatureData(event.abi)\n return event\n })\n }\n\n addEventAddresses (event) {\n const { abi, args } = event\n let _addresses = event._addresses || []\n if (abi && args) {\n let inputs = abi.inputs || []\n inputs.forEach((v, i) => {\n if (v.type === 'address') {\n _addresses.push(args[i])\n }\n if (v.type === 'address[]') {\n let value = args[i] || []\n if (Array.isArray(value)) { // temp fix to undecoded events\n value.forEach(v => _addresses.push(v))\n } else {\n let i = 0\n while (2 + (i + 1) * 40 <= value.length) {\n _addresses.push('0x' + value.slice(2 + i * 40, 2 + (i + 1) * 40))\n i++\n }\n }\n }\n })\n event._addresses = [...new Set(_addresses)]\n }\n return event\n }\n\n decodeLogs (logs, abi) {\n abi = abi || this.abi\n const eventDecoder = EventDecoder(abi, this.log)\n if (!this.nativeContracts || !this.nativeContractsEvents) {\n throw new Error(`Native contracts decoder is missing, check the value of netId:${this.netId}`)\n }\n const { isNativeContract } = this.nativeContracts\n const { nativeContractsEvents } = this\n return logs.map(log => {\n const { address } = log\n const decoder = (isNativeContract(address)) ? nativeContractsEvents.getEventDecoder(log) : eventDecoder\n return decoder.decodeLog(log)\n })\n }\n\n makeContract (address, abi) {\n abi = abi || this.abi\n let { nod3 } = this\n return Contract(abi, { address, nod3 })\n }\n\n async call (method, contract, params = [], options = {}) {\n try {\n const res = await contract.call(method, params, options)\n return res\n } catch (err) {\n this.log.warn(`Method ${method} call ${err}`)\n return null\n }\n }\n\n async getTokenData (contract, { methods } = {}) {\n methods = methods || ['name', 'symbol', 'decimals', 'totalSupply']\n let result = await Promise.all(\n methods.map(m =>\n this.call(m, contract)\n .then(res => res)\n .catch(err => this.log.debug(`[${contract.address}] Error executing ${m} Error: ${err}`)))\n )\n return result.reduce((v, a, i) => {\n let name = methods[i]\n v[name] = a\n return v\n }, {})\n }\n\n getMethodsBySelectors (txInputData) {\n let methods = this.getMethodsSelectors()\n return Object.keys(methods)\n .filter(method => hasMethodSelector(txInputData, methods[method]) === true)\n }\n\n async getContractInfo (txInputData, contract) {\n let { interfaces, methods } = await this.getContractImplementedInterfaces(txInputData, contract)\n\n interfaces = mapInterfacesToERCs(interfaces)\n return { methods, interfaces }\n }\n\n async getEIP1967Info (contractAddress) {\n const { isUpgradeable, impContractAddress } = await this.isERC1967(contractAddress)\n if (isUpgradeable) {\n // manual check required\n const proxyContractBytecode = await this.getContractCodeFromNode(impContractAddress)\n const methods = this.getMethodsBySelectors(proxyContractBytecode)\n let interfaces = this.getInterfacesByMethods(methods)\n\n interfaces = mapInterfacesToERCs(interfaces)\n return { methods, interfaces: [...interfaces, 'ERC1967'] }\n }\n return {methods: [], interfaces: []}\n }\n\n async getContractImplementedInterfaces (txInputData, contract) {\n let methods = this.getMethodsBySelectors(txInputData)\n let isErc165 = false\n // skip non-erc165 contracts\n if (includesAll(methods, ['supportsInterface(bytes4)'])) {\n isErc165 = await this.implementsErc165(contract)\n }\n let interfaces\n if (isErc165) {\n interfaces = await this.getInterfacesERC165(contract)\n } else {\n interfaces = this.getInterfacesByMethods(methods)\n }\n\n return { methods, interfaces }\n }\n\n async isERC1967 (contractAddress) {\n // check For ERC1967\n // https://eips.ethereum.org/EIPS/eip-1967\n // 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc storage address where the implementation address is stored\n const storedValue = await this.nod3.eth.getStorageAt(contractAddress, '0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc')\n const isUpgradeable = storedValue !== '0x0'\n if (isUpgradeable) {\n const impContractAddress = `0x${storedValue.slice(-40)}` // extract contract address\n return { isUpgradeable, impContractAddress }\n } else {\n return { isUpgradeable, impContractAddress: storedValue }\n }\n }\n\n async getContractCodeFromNode (contractAddress) {\n return this.nod3.eth.getContractCodeAt(contractAddress)\n }\n\n async getInterfacesERC165 (contract) {\n let ifaces = {}\n let keys = Object.keys(interfacesIds)\n for (let i of keys) {\n ifaces[i] = await this.supportsInterface(contract, interfacesIds[i].id)\n }\n return ifaces\n }\n\n getInterfacesByMethods (methods, isErc165) {\n return Object.keys(interfacesIds)\n .map(i => {\n return [i, includesAll(methods, interfacesIds[i].methods)]\n })\n .reduce((obj, value) => {\n obj[value[0]] = value[1]\n return obj\n }, {})\n }\n\n async supportsInterface (contract, interfaceId) {\n // fixed gas to prevent infinite loops\n let options = { gas: '0x7530' }\n let res = await this.call('supportsInterface', contract, [interfaceId], options)\n return res\n }\n\n async implementsErc165 (contract) {\n try {\n let first = await this.supportsInterface(contract, interfacesIds.ERC165.id)\n if (first === true) {\n let second = await this.supportsInterface(contract, '0xffffffff')\n return !(second === true || second === null)\n }\n return false\n } catch (err) {\n return Promise.reject(err)\n }\n }\n}\n\nexport default ContractParser\n"],"mappings":"6HAAA,IAAAA,cAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,uBAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,gBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,SAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,aAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,IAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AACA,IAAAQ,MAAA,GAAAR,OAAA,YAMgB,SAAAD,uBAAAU,GAAA,UAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;;;;;;;;AAEhB,SAASG,mBAAmBA,CAAEC,UAAU,EAAE;EACxC,OAAOC,MAAM,CAACC,IAAI,CAACF,UAAU,CAAC;EAC3BG,MAAM,CAAC,CAAAC,CAAC,KAAIJ,UAAU,CAACI,CAAC,CAAC,KAAK,IAAI,CAAC;EACnCC,GAAG,CAAC,CAAAC,CAAC,KAAIC,0BAAmB,CAACD,CAAC,CAAC,IAAIA,CAAC,CAAC;AAC1C;;AAEA,SAASE,iBAAiBA,CAAEC,WAAW,EAAEC,QAAQ,EAAE;EACjD,OAAOA,QAAQ,IAAID,WAAW,IAAIA,WAAW,CAACE,QAAQ,CAACD,QAAQ,CAAC;AAClE;;AAEO,MAAME,cAAc,CAAC;EAC1BC,WAAWA,CAAE,EAAEC,GAAG,EAAEC,GAAG,EAAEC,UAAU,EAAEC,IAAI,EAAEC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;IAC/DF,UAAU,GAAGA,UAAU,IAAI,CAAC,CAAC;IAC7B,MAAM,EAAEG,GAAG,CAAC,CAAC,GAAGH,UAAU;IAC1B,IAAI,CAACI,KAAK,GAAID,GAAG,GAAIA,GAAG,CAACE,EAAE,GAAGC,SAAS;IACvC,IAAI,CAACR,GAAG,GAAG,IAAAS,aAAM,EAACT,GAAG,IAAIU,YAAU,CAAC;IACpC,IAAI,CAACT,GAAG,GAAGA,GAAG,IAAIU,OAAO;IACzB,IAAI,CAACR,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACS,eAAe,GAAG,IAAAC,wBAAe,EAACX,UAAU,CAAC;IAClD,IAAI,IAAI,CAACI,KAAK,EAAE;MACd,IAAIQ,cAAc,GAAGC,yBAAkB,CAAC,IAAI,CAACT,KAAK,CAAC;MACnD,IAAI,CAACU,qBAAqB,GAAG,IAAAC,+BAAsB,EAAC,EAAEH,cAAc,EAAEV,aAAa,CAAC,CAAC,CAAC;IACxF;EACF;;EAEAc,OAAOA,CAAEf,IAAI,EAAE;IACb,IAAI,CAACA,IAAI,GAAGA,IAAI;EAClB;;EAEAgB,wBAAwBA,CAAEC,IAAI,EAAE;IAC9B,MAAM,EAAER,eAAe,CAAC,CAAC,GAAG,IAAI;IAChC,IAAIA,eAAe,EAAE;MACnB,OAAOA,eAAe,CAACO,wBAAwB,CAACC,IAAI,CAAC;IACvD;EACF;;EAEAX,MAAMA,CAAET,GAAG,EAAE;IACX,IAAI,CAACA,GAAG,GAAG,IAAAS,aAAM,EAACT,GAAG,CAAC;EACxB;;EAEAqB,mBAAmBA,CAAA,EAAI;IACrB,IAAIC,SAAS,GAAG,CAAC,CAAC;IAClB,IAAIC,OAAO,GAAG,IAAI,CAACC,aAAa,CAAC,CAAC;IAClC,KAAK,IAAIC,CAAC,IAAIF,OAAO,EAAE;MACrB,IAAIG,MAAM,GAAGH,OAAO,CAACE,CAAC,CAAC;MACvB,IAAIE,SAAS,GAAGD,MAAM,CAACC,SAAS,IAAI,IAAAC,wBAAiB,EAACH,CAAC,CAAC;MACxDH,SAAS,CAACG,CAAC,CAAC,GAAG,IAAAI,uBAAgB,EAACF,SAAS,CAAC;IAC5C;IACA,OAAOL,SAAS;EAClB;;EAEAE,aAAaA,CAAA,EAAI;IACf,IAAID,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,CAACvB,GAAG,CAACX,MAAM,CAAC,CAAAyC,GAAG,KAAIA,GAAG,CAACC,IAAI,KAAK,UAAU,CAAC;IAC5CxC,GAAG,CAAC,CAAAkC,CAAC,KAAI;MACR,IAAIO,GAAG,GAAGP,CAAC,CAACQ,oBAAa,CAAC,IAAI,IAAAC,uBAAgB,EAACT,CAAC,CAAC;MACjDO,GAAG,CAACZ,IAAI,GAAGK,CAAC,CAACL,IAAI;MACjBG,OAAO,CAACS,GAAG,CAACN,MAAM,CAAC,GAAGM,GAAG;IAC3B,CAAC,CAAC;IACJ,OAAOT,OAAO;EAChB;;EAEAY,WAAWA,CAAEC,IAAI,EAAEpC,GAAG,EAAE;IACtB,OAAO,IAAI,CAACqC,UAAU,CAACD,IAAI,EAAEpC,GAAG,CAAC,CAACT,GAAG,CAAC,CAAA+C,KAAK,KAAI;MAC7C,IAAI,CAACC,iBAAiB,CAACD,KAAK,CAAC;MAC7BA,KAAK,CAACtC,GAAG,GAAG,IAAAwC,6BAAsB,EAACF,KAAK,CAACtC,GAAG,CAAC;MAC7C,OAAOsC,KAAK;IACd,CAAC,CAAC;EACJ;;EAEAC,iBAAiBA,CAAED,KAAK,EAAE;IACxB,MAAM,EAAEtC,GAAG,EAAEyC,IAAI,CAAC,CAAC,GAAGH,KAAK;IAC3B,IAAII,UAAU,GAAGJ,KAAK,CAACI,UAAU,IAAI,EAAE;IACvC,IAAI1C,GAAG,IAAIyC,IAAI,EAAE;MACf,IAAIE,MAAM,GAAG3C,GAAG,CAAC2C,MAAM,IAAI,EAAE;MAC7BA,MAAM,CAACC,OAAO,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;QACvB,IAAID,CAAC,CAACd,IAAI,KAAK,SAAS,EAAE;UACxBW,UAAU,CAACK,IAAI,CAACN,IAAI,CAACK,CAAC,CAAC,CAAC;QAC1B;QACA,IAAID,CAAC,CAACd,IAAI,KAAK,WAAW,EAAE;UAC1B,IAAIiB,KAAK,GAAGP,IAAI,CAACK,CAAC,CAAC,IAAI,EAAE;UACzB,IAAIG,KAAK,CAACC,OAAO,CAACF,KAAK,CAAC,EAAE,CAAE;YAC1BA,KAAK,CAACJ,OAAO,CAAC,CAAAC,CAAC,KAAIH,UAAU,CAACK,IAAI,CAACF,CAAC,CAAC,CAAC;UACxC,CAAC,MAAM;YACL,IAAIC,CAAC,GAAG,CAAC;YACT,OAAO,CAAC,GAAG,CAACA,CAAC,GAAG,CAAC,IAAI,EAAE,IAAIE,KAAK,CAACG,MAAM,EAAE;cACvCT,UAAU,CAACK,IAAI,CAAC,IAAI,GAAGC,KAAK,CAACI,KAAK,CAAC,CAAC,GAAGN,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAACA,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;cACjEA,CAAC,EAAE;YACL;UACF;QACF;MACF,CAAC,CAAC;MACFR,KAAK,CAACI,UAAU,GAAG,CAAC,GAAG,IAAIW,GAAG,CAACX,UAAU,CAAC,CAAC;IAC7C;IACA,OAAOJ,KAAK;EACd;;EAEAD,UAAUA,CAAED,IAAI,EAAEpC,GAAG,EAAE;IACrBA,GAAG,GAAGA,GAAG,IAAI,IAAI,CAACA,GAAG;IACrB,MAAMsD,YAAY,GAAG,IAAAC,qBAAY,EAACvD,GAAG,EAAE,IAAI,CAACC,GAAG,CAAC;IAChD,IAAI,CAAC,IAAI,CAACW,eAAe,IAAI,CAAC,IAAI,CAACI,qBAAqB,EAAE;MACxD,MAAM,IAAIwC,KAAK,CAAE,iEAAgE,IAAI,CAAClD,KAAM,EAAC,CAAC;IAChG;IACA,MAAM,EAAEmD,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAC7C,eAAe;IACjD,MAAM,EAAEI,qBAAqB,CAAC,CAAC,GAAG,IAAI;IACtC,OAAOoB,IAAI,CAAC7C,GAAG,CAAC,CAAAU,GAAG,KAAI;MACrB,MAAM,EAAEyD,OAAO,CAAC,CAAC,GAAGzD,GAAG;MACvB,MAAM0D,OAAO,GAAIF,gBAAgB,CAACC,OAAO,CAAC,GAAI1C,qBAAqB,CAAC4C,eAAe,CAAC3D,GAAG,CAAC,GAAGqD,YAAY;MACvG,OAAOK,OAAO,CAACE,SAAS,CAAC5D,GAAG,CAAC;IAC/B,CAAC,CAAC;EACJ;;EAEA6D,YAAYA,CAAEJ,OAAO,EAAE1D,GAAG,EAAE;IAC1BA,GAAG,GAAGA,GAAG,IAAI,IAAI,CAACA,GAAG;IACrB,IAAI,EAAEG,IAAI,CAAC,CAAC,GAAG,IAAI;IACnB,OAAO,IAAA4D,iBAAQ,EAAC/D,GAAG,EAAE,EAAE0D,OAAO,EAAEvD,IAAI,CAAC,CAAC,CAAC;EACzC;;EAEA,MAAM6D,IAAIA,CAAEtC,MAAM,EAAEuC,QAAQ,EAAEC,MAAM,GAAG,EAAE,EAAEC,OAAO,GAAG,CAAC,CAAC,EAAE;IACvD,IAAI;MACF,MAAMC,GAAG,GAAG,MAAMH,QAAQ,CAACD,IAAI,CAACtC,MAAM,EAAEwC,MAAM,EAAEC,OAAO,CAAC;MACxD,OAAOC,GAAG;IACZ,CAAC,CAAC,OAAOC,GAAG,EAAE;MACZ,IAAI,CAACpE,GAAG,CAACqE,IAAI,CAAE,UAAS5C,MAAO,SAAQ2C,GAAI,EAAC,CAAC;MAC7C,OAAO,IAAI;IACb;EACF;;EAEA,MAAME,YAAYA,CAAEN,QAAQ,EAAE,EAAE1C,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;IAC9CA,OAAO,GAAGA,OAAO,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC;IAClE,IAAIiD,MAAM,GAAG,MAAMC,OAAO,CAACC,GAAG;MAC5BnD,OAAO,CAAChC,GAAG,CAAC,CAAAkC,CAAC;MACX,IAAI,CAACuC,IAAI,CAACvC,CAAC,EAAEwC,QAAQ,CAAC;MACnBU,IAAI,CAAC,CAAAP,GAAG,KAAIA,GAAG,CAAC;MAChBQ,KAAK,CAAC,CAAAP,GAAG,KAAI,IAAI,CAACpE,GAAG,CAAC4E,KAAK,CAAE,IAAGZ,QAAQ,CAACP,OAAQ,qBAAoBjC,CAAE,YAAW4C,GAAI,EAAC,CAAC,CAAC;IAChG,CAAC;IACD,OAAOG,MAAM,CAACM,MAAM,CAAC,CAACjC,CAAC,EAAEkC,CAAC,EAAEjC,CAAC,KAAK;MAChC,IAAI1B,IAAI,GAAGG,OAAO,CAACuB,CAAC,CAAC;MACrBD,CAAC,CAACzB,IAAI,CAAC,GAAG2D,CAAC;MACX,OAAOlC,CAAC;IACV,CAAC,EAAE,CAAC,CAAC,CAAC;EACR;;EAEAmC,qBAAqBA,CAAErF,WAAW,EAAE;IAClC,IAAI4B,OAAO,GAAG,IAAI,CAACF,mBAAmB,CAAC,CAAC;IACxC,OAAOlC,MAAM,CAACC,IAAI,CAACmC,OAAO,CAAC;IACxBlC,MAAM,CAAC,CAAAqC,MAAM,KAAIhC,iBAAiB,CAACC,WAAW,EAAE4B,OAAO,CAACG,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC;EAC/E;;EAEA,MAAMuD,eAAeA,CAAEtF,WAAW,EAAEsE,QAAQ,EAAE;IAC5C,IAAI,EAAE/E,UAAU,EAAEqC,OAAO,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC2D,gCAAgC,CAACvF,WAAW,EAAEsE,QAAQ,CAAC;;IAEhG/E,UAAU,GAAGD,mBAAmB,CAACC,UAAU,CAAC;IAC5C,OAAO,EAAEqC,OAAO,EAAErC,UAAU,CAAC,CAAC;EAChC;;EAEA,MAAMiG,cAAcA,CAAEC,eAAe,EAAE;IACrC,MAAM,EAAEC,aAAa,EAAEC,kBAAkB,CAAC,CAAC,GAAG,MAAM,IAAI,CAACC,SAAS,CAACH,eAAe,CAAC;IACnF,IAAIC,aAAa,EAAE;MACjB;MACA,MAAMG,qBAAqB,GAAG,MAAM,IAAI,CAACC,uBAAuB,CAACH,kBAAkB,CAAC;MACpF,MAAM/D,OAAO,GAAG,IAAI,CAACyD,qBAAqB,CAACQ,qBAAqB,CAAC;MACjE,IAAItG,UAAU,GAAG,IAAI,CAACwG,sBAAsB,CAACnE,OAAO,CAAC;;MAErDrC,UAAU,GAAGD,mBAAmB,CAACC,UAAU,CAAC;MAC5C,OAAO,EAAEqC,OAAO,EAAErC,UAAU,EAAE,CAAC,GAAGA,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;IAC5D;IACA,OAAO,EAACqC,OAAO,EAAE,EAAE,EAAErC,UAAU,EAAE,EAAE,EAAC;EACtC;;EAEA,MAAMgG,gCAAgCA,CAAEvF,WAAW,EAAEsE,QAAQ,EAAE;IAC7D,IAAI1C,OAAO,GAAG,IAAI,CAACyD,qBAAqB,CAACrF,WAAW,CAAC;IACrD,IAAIgG,QAAQ,GAAG,KAAK;IACpB;IACA,IAAI,IAAAC,qBAAW,EAACrE,OAAO,EAAE,CAAC,2BAA2B,CAAC,CAAC,EAAE;MACvDoE,QAAQ,GAAG,MAAM,IAAI,CAACE,gBAAgB,CAAC5B,QAAQ,CAAC;IAClD;IACA,IAAI/E,UAAU;IACd,IAAIyG,QAAQ,EAAE;MACZzG,UAAU,GAAG,MAAM,IAAI,CAAC4G,mBAAmB,CAAC7B,QAAQ,CAAC;IACvD,CAAC,MAAM;MACL/E,UAAU,GAAG,IAAI,CAACwG,sBAAsB,CAACnE,OAAO,CAAC;IACnD;;IAEA,OAAO,EAAEA,OAAO,EAAErC,UAAU,CAAC,CAAC;EAChC;;EAEA,MAAMqG,SAASA,CAAEH,eAAe,EAAE;IAChC;IACA;IACA;IACA,MAAMW,WAAW,GAAG,MAAM,IAAI,CAAC5F,IAAI,CAAC6F,GAAG,CAACC,YAAY,CAACb,eAAe,EAAE,oEAAoE,CAAC;IAC3I,MAAMC,aAAa,GAAGU,WAAW,KAAK,KAAK;IAC3C,IAAIV,aAAa,EAAE;MACjB,MAAMC,kBAAkB,GAAI,KAAIS,WAAW,CAAC3C,KAAK,CAAC,CAAC,EAAE,CAAE,EAAC,EAAC;MACzD,OAAO,EAAEiC,aAAa,EAAEC,kBAAkB,CAAC,CAAC;IAC9C,CAAC,MAAM;MACL,OAAO,EAAED,aAAa,EAAEC,kBAAkB,EAAES,WAAW,CAAC,CAAC;IAC3D;EACF;;EAEA,MAAMN,uBAAuBA,CAAEL,eAAe,EAAE;IAC9C,OAAO,IAAI,CAACjF,IAAI,CAAC6F,GAAG,CAACE,iBAAiB,CAACd,eAAe,CAAC;EACzD;;EAEA,MAAMU,mBAAmBA,CAAE7B,QAAQ,EAAE;IACnC,IAAIkC,MAAM,GAAG,CAAC,CAAC;IACf,IAAI/G,IAAI,GAAGD,MAAM,CAACC,IAAI,CAACgH,sBAAa,CAAC;IACrC,KAAK,IAAItD,CAAC,IAAI1D,IAAI,EAAE;MAClB+G,MAAM,CAACrD,CAAC,CAAC,GAAG,MAAM,IAAI,CAACuD,iBAAiB,CAACpC,QAAQ,EAAEmC,sBAAa,CAACtD,CAAC,CAAC,CAACvC,EAAE,CAAC;IACzE;IACA,OAAO4F,MAAM;EACf;;EAEAT,sBAAsBA,CAAEnE,OAAO,EAAEoE,QAAQ,EAAE;IACzC,OAAOxG,MAAM,CAACC,IAAI,CAACgH,sBAAa,CAAC;IAC9B7G,GAAG,CAAC,CAAAuD,CAAC,KAAI;MACR,OAAO,CAACA,CAAC,EAAE,IAAA8C,qBAAW,EAACrE,OAAO,EAAE6E,sBAAa,CAACtD,CAAC,CAAC,CAACvB,OAAO,CAAC,CAAC;IAC5D,CAAC,CAAC;IACDuD,MAAM,CAAC,CAAChG,GAAG,EAAEkE,KAAK,KAAK;MACtBlE,GAAG,CAACkE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAGA,KAAK,CAAC,CAAC,CAAC;MACxB,OAAOlE,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC,CAAC;EACV;;EAEA,MAAMuH,iBAAiBA,CAAEpC,QAAQ,EAAEqC,WAAW,EAAE;IAC9C;IACA,IAAInC,OAAO,GAAG,EAAEoC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC/B,IAAInC,GAAG,GAAG,MAAM,IAAI,CAACJ,IAAI,CAAC,mBAAmB,EAAEC,QAAQ,EAAE,CAACqC,WAAW,CAAC,EAAEnC,OAAO,CAAC;IAChF,OAAOC,GAAG;EACZ;;EAEA,MAAMyB,gBAAgBA,CAAE5B,QAAQ,EAAE;IAChC,IAAI;MACF,IAAIuC,KAAK,GAAG,MAAM,IAAI,CAACH,iBAAiB,CAACpC,QAAQ,EAAEmC,sBAAa,CAACK,MAAM,CAAClG,EAAE,CAAC;MAC3E,IAAIiG,KAAK,KAAK,IAAI,EAAE;QAClB,IAAIE,MAAM,GAAG,MAAM,IAAI,CAACL,iBAAiB,CAACpC,QAAQ,EAAE,YAAY,CAAC;QACjE,OAAO,EAAEyC,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAK,IAAI,CAAC;MAC9C;MACA,OAAO,KAAK;IACd,CAAC,CAAC,OAAOrC,GAAG,EAAE;MACZ,OAAOI,OAAO,CAACkC,MAAM,CAACtC,GAAG,CAAC;IAC5B;EACF;AACF,CAACuC,OAAA,CAAA9G,cAAA,GAAAA,cAAA,KAAA+G,QAAA,GAAAD,OAAA,CAAA5H,OAAA;;AAEcc,cAAc"} \ No newline at end of file +{"version":3,"file":"ContractParser.js","names":["_interfacesIds","_interopRequireDefault","require","_rskUtils","_NativeContractsDecoder","_NativeContracts","_Contract","_EventDecoder","_Abi","_types","_utils","obj","__esModule","default","mapInterfacesToERCs","interfaces","Object","keys","filter","k","map","t","contractsInterfaces","hasMethodSelector","txInputData","selector","includes","ContractParser","constructor","abi","log","initConfig","nod3","txBlockNumber","net","netId","id","undefined","setAbi","defaultABI","console","nativeContracts","NativeContracts","bitcoinNetwork","bitcoinRskNetWorks","nativeContractsEvents","NativeContractsDecoder","setNod3","getNativeContractAddress","name","getMethodsSelectors","selectors","methods","getAbiMethods","m","method","signature","soliditySignature","soliditySelector","def","type","sig","ABI_SIGNATURE","abiSignatureData","parseTxLogs","logs","decodeLogs","event","addEventAddresses","removeAbiSignatureData","args","_addresses","inputs","forEach","v","i","push","value","Array","isArray","length","slice","Set","eventDecoder","EventDecoder","Error","isNativeContract","address","decoder","getEventDecoder","decodeLog","makeContract","Contract","call","contract","params","options","res","err","getTokenData","result","Promise","all","then","catch","debug","reduce","a","getMethodsBySelectors","getContractInfo","getContractImplementedInterfaces","getEIP1967Info","contractAddress","isUpgradeable","impContractAddress","isERC1967","proxyContractBytecode","getContractCodeFromNode","getInterfacesByMethods","isErc165","includesAll","implementsErc165","getInterfacesERC165","storedValue","eth","getStorageAt","getContractCodeAt","ifaces","interfacesIds","supportsInterface","interfaceId","gas","first","ERC165","second","reject","exports","_default"],"sources":["../../src/lib/ContractParser.js"],"sourcesContent":["import interfacesIds from './interfacesIds'\nimport { includesAll } from '@rsksmart/rsk-utils'\nimport NativeContractsDecoder from './nativeContracts/NativeContractsDecoder'\nimport NativeContracts from './nativeContracts/NativeContracts'\nimport Contract from './Contract'\nimport EventDecoder from './EventDecoder'\nimport defaultABI from './Abi'\nimport { ABI_SIGNATURE, bitcoinRskNetWorks, contractsInterfaces } from './types'\nimport {\n setAbi,\n removeAbiSignatureData,\n abiSignatureData,\n soliditySelector,\n soliditySignature\n} from './utils'\n\nfunction mapInterfacesToERCs (interfaces) {\n return Object.keys(interfaces)\n .filter(k => interfaces[k] === true)\n .map(t => contractsInterfaces[t] || t)\n}\n\nfunction hasMethodSelector (txInputData, selector) {\n return selector && txInputData && txInputData.includes(selector)\n}\n\nexport class ContractParser {\n constructor ({ abi, log, initConfig, nod3, txBlockNumber } = {}) {\n initConfig = initConfig || {}\n const { net } = initConfig\n this.netId = (net) ? net.id : undefined\n this.abi = setAbi(abi || defaultABI)\n this.log = log || console\n this.nod3 = nod3\n this.nativeContracts = NativeContracts(initConfig)\n if (this.netId) {\n let bitcoinNetwork = bitcoinRskNetWorks[this.netId]\n this.nativeContractsEvents = NativeContractsDecoder({ bitcoinNetwork, txBlockNumber })\n }\n }\n\n setNod3 (nod3) {\n this.nod3 = nod3\n }\n\n getNativeContractAddress (name) {\n const { nativeContracts } = this\n if (nativeContracts) {\n return nativeContracts.getNativeContractAddress(name)\n }\n }\n\n setAbi (abi) {\n this.abi = setAbi(abi)\n }\n\n getMethodsSelectors () {\n let selectors = {}\n let methods = this.getAbiMethods()\n for (let m in methods) {\n let method = methods[m]\n let signature = method.signature || soliditySignature(m)\n selectors[m] = soliditySelector(signature)\n }\n return selectors\n }\n\n getAbiMethods () {\n let methods = {}\n this.abi.filter(def => def.type === 'function')\n .map(m => {\n let sig = m[ABI_SIGNATURE] || abiSignatureData(m)\n sig.name = m.name\n methods[sig.method] = sig\n })\n return methods\n }\n\n parseTxLogs (logs, abi) {\n return this.decodeLogs(logs, abi).map(event => {\n this.addEventAddresses(event)\n event.abi = removeAbiSignatureData(event.abi)\n return event\n })\n }\n\n addEventAddresses (event) {\n const { abi, args } = event\n let _addresses = event._addresses || []\n if (abi && args) {\n let inputs = abi.inputs || []\n inputs.forEach((v, i) => {\n if (v.type === 'address') {\n _addresses.push(args[i])\n }\n if (v.type === 'address[]') {\n let value = args[i] || []\n if (Array.isArray(value)) { // temp fix to undecoded events\n value.forEach(v => _addresses.push(v))\n } else {\n let i = 0\n while (2 + (i + 1) * 40 <= value.length) {\n _addresses.push('0x' + value.slice(2 + i * 40, 2 + (i + 1) * 40))\n i++\n }\n }\n }\n })\n event._addresses = [...new Set(_addresses)]\n }\n return event\n }\n\n decodeLogs (logs, abi) {\n abi = abi || this.abi\n const eventDecoder = EventDecoder(abi, this.log)\n if (!this.nativeContracts || !this.nativeContractsEvents) {\n throw new Error(`Native contracts decoder is missing, check the value of netId:${this.netId}`)\n }\n const { isNativeContract } = this.nativeContracts\n const { nativeContractsEvents } = this\n return logs.map(log => {\n const { address } = log\n const decoder = (isNativeContract(address)) ? nativeContractsEvents.getEventDecoder(log) : eventDecoder\n return decoder.decodeLog(log)\n })\n }\n\n makeContract (address, abi) {\n abi = abi || this.abi\n let { nod3 } = this\n return Contract(abi, { address, nod3 })\n }\n\n async call (method, contract, params = [], options = {}) {\n try {\n const res = await contract.call(method, params, options)\n return res\n } catch (err) {\n // temporary fix to avoid errored contract calls spam logs\n // this.log.warn(`Method ${method} call ${err}`)\n return null\n }\n }\n\n async getTokenData (contract, { methods } = {}) {\n methods = methods || ['name', 'symbol', 'decimals', 'totalSupply']\n let result = await Promise.all(\n methods.map(m =>\n this.call(m, contract)\n .then(res => res)\n .catch(err => this.log.debug(`[${contract.address}] Error executing ${m} Error: ${err}`)))\n )\n return result.reduce((v, a, i) => {\n let name = methods[i]\n v[name] = a\n return v\n }, {})\n }\n\n getMethodsBySelectors (txInputData) {\n let methods = this.getMethodsSelectors()\n return Object.keys(methods)\n .filter(method => hasMethodSelector(txInputData, methods[method]) === true)\n }\n\n async getContractInfo (txInputData, contract) {\n let { interfaces, methods } = await this.getContractImplementedInterfaces(txInputData, contract)\n\n interfaces = mapInterfacesToERCs(interfaces)\n return { methods, interfaces }\n }\n\n async getEIP1967Info (contractAddress) {\n const { isUpgradeable, impContractAddress } = await this.isERC1967(contractAddress)\n if (isUpgradeable) {\n // manual check required\n const proxyContractBytecode = await this.getContractCodeFromNode(impContractAddress)\n const methods = this.getMethodsBySelectors(proxyContractBytecode)\n let interfaces = this.getInterfacesByMethods(methods)\n\n interfaces = mapInterfacesToERCs(interfaces)\n return { methods, interfaces: [...interfaces, 'ERC1967'] }\n }\n return {methods: [], interfaces: []}\n }\n\n async getContractImplementedInterfaces (txInputData, contract) {\n let methods = this.getMethodsBySelectors(txInputData)\n let isErc165 = false\n // skip non-erc165 contracts\n if (includesAll(methods, ['supportsInterface(bytes4)'])) {\n isErc165 = await this.implementsErc165(contract)\n }\n let interfaces\n if (isErc165) {\n interfaces = await this.getInterfacesERC165(contract)\n } else {\n interfaces = this.getInterfacesByMethods(methods)\n }\n\n return { methods, interfaces }\n }\n\n async isERC1967 (contractAddress) {\n // check For ERC1967\n // https://eips.ethereum.org/EIPS/eip-1967\n // 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc storage address where the implementation address is stored\n const storedValue = await this.nod3.eth.getStorageAt(contractAddress, '0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc')\n const isUpgradeable = storedValue !== '0x0'\n if (isUpgradeable) {\n const impContractAddress = `0x${storedValue.slice(-40)}` // extract contract address\n return { isUpgradeable, impContractAddress }\n } else {\n return { isUpgradeable, impContractAddress: storedValue }\n }\n }\n\n async getContractCodeFromNode (contractAddress) {\n return this.nod3.eth.getContractCodeAt(contractAddress)\n }\n\n async getInterfacesERC165 (contract) {\n let ifaces = {}\n let keys = Object.keys(interfacesIds)\n for (let i of keys) {\n ifaces[i] = await this.supportsInterface(contract, interfacesIds[i].id)\n }\n return ifaces\n }\n\n getInterfacesByMethods (methods, isErc165) {\n return Object.keys(interfacesIds)\n .map(i => {\n return [i, includesAll(methods, interfacesIds[i].methods)]\n })\n .reduce((obj, value) => {\n obj[value[0]] = value[1]\n return obj\n }, {})\n }\n\n async supportsInterface (contract, interfaceId) {\n // fixed gas to prevent infinite loops\n let options = { gas: '0x7530' }\n let res = await this.call('supportsInterface', contract, [interfaceId], options)\n return res\n }\n\n async implementsErc165 (contract) {\n try {\n let first = await this.supportsInterface(contract, interfacesIds.ERC165.id)\n if (first === true) {\n let second = await this.supportsInterface(contract, '0xffffffff')\n return !(second === true || second === null)\n }\n return false\n } catch (err) {\n return Promise.reject(err)\n }\n }\n}\n\nexport default ContractParser\n"],"mappings":"6HAAA,IAAAA,cAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,uBAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,gBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,SAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,aAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,IAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AACA,IAAAQ,MAAA,GAAAR,OAAA,YAMgB,SAAAD,uBAAAU,GAAA,UAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;;;;;;;;AAEhB,SAASG,mBAAmBA,CAAEC,UAAU,EAAE;EACxC,OAAOC,MAAM,CAACC,IAAI,CAACF,UAAU,CAAC;EAC3BG,MAAM,CAAC,CAAAC,CAAC,KAAIJ,UAAU,CAACI,CAAC,CAAC,KAAK,IAAI,CAAC;EACnCC,GAAG,CAAC,CAAAC,CAAC,KAAIC,0BAAmB,CAACD,CAAC,CAAC,IAAIA,CAAC,CAAC;AAC1C;;AAEA,SAASE,iBAAiBA,CAAEC,WAAW,EAAEC,QAAQ,EAAE;EACjD,OAAOA,QAAQ,IAAID,WAAW,IAAIA,WAAW,CAACE,QAAQ,CAACD,QAAQ,CAAC;AAClE;;AAEO,MAAME,cAAc,CAAC;EAC1BC,WAAWA,CAAE,EAAEC,GAAG,EAAEC,GAAG,EAAEC,UAAU,EAAEC,IAAI,EAAEC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;IAC/DF,UAAU,GAAGA,UAAU,IAAI,CAAC,CAAC;IAC7B,MAAM,EAAEG,GAAG,CAAC,CAAC,GAAGH,UAAU;IAC1B,IAAI,CAACI,KAAK,GAAID,GAAG,GAAIA,GAAG,CAACE,EAAE,GAAGC,SAAS;IACvC,IAAI,CAACR,GAAG,GAAG,IAAAS,aAAM,EAACT,GAAG,IAAIU,YAAU,CAAC;IACpC,IAAI,CAACT,GAAG,GAAGA,GAAG,IAAIU,OAAO;IACzB,IAAI,CAACR,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACS,eAAe,GAAG,IAAAC,wBAAe,EAACX,UAAU,CAAC;IAClD,IAAI,IAAI,CAACI,KAAK,EAAE;MACd,IAAIQ,cAAc,GAAGC,yBAAkB,CAAC,IAAI,CAACT,KAAK,CAAC;MACnD,IAAI,CAACU,qBAAqB,GAAG,IAAAC,+BAAsB,EAAC,EAAEH,cAAc,EAAEV,aAAa,CAAC,CAAC,CAAC;IACxF;EACF;;EAEAc,OAAOA,CAAEf,IAAI,EAAE;IACb,IAAI,CAACA,IAAI,GAAGA,IAAI;EAClB;;EAEAgB,wBAAwBA,CAAEC,IAAI,EAAE;IAC9B,MAAM,EAAER,eAAe,CAAC,CAAC,GAAG,IAAI;IAChC,IAAIA,eAAe,EAAE;MACnB,OAAOA,eAAe,CAACO,wBAAwB,CAACC,IAAI,CAAC;IACvD;EACF;;EAEAX,MAAMA,CAAET,GAAG,EAAE;IACX,IAAI,CAACA,GAAG,GAAG,IAAAS,aAAM,EAACT,GAAG,CAAC;EACxB;;EAEAqB,mBAAmBA,CAAA,EAAI;IACrB,IAAIC,SAAS,GAAG,CAAC,CAAC;IAClB,IAAIC,OAAO,GAAG,IAAI,CAACC,aAAa,CAAC,CAAC;IAClC,KAAK,IAAIC,CAAC,IAAIF,OAAO,EAAE;MACrB,IAAIG,MAAM,GAAGH,OAAO,CAACE,CAAC,CAAC;MACvB,IAAIE,SAAS,GAAGD,MAAM,CAACC,SAAS,IAAI,IAAAC,wBAAiB,EAACH,CAAC,CAAC;MACxDH,SAAS,CAACG,CAAC,CAAC,GAAG,IAAAI,uBAAgB,EAACF,SAAS,CAAC;IAC5C;IACA,OAAOL,SAAS;EAClB;;EAEAE,aAAaA,CAAA,EAAI;IACf,IAAID,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,CAACvB,GAAG,CAACX,MAAM,CAAC,CAAAyC,GAAG,KAAIA,GAAG,CAACC,IAAI,KAAK,UAAU,CAAC;IAC5CxC,GAAG,CAAC,CAAAkC,CAAC,KAAI;MACR,IAAIO,GAAG,GAAGP,CAAC,CAACQ,oBAAa,CAAC,IAAI,IAAAC,uBAAgB,EAACT,CAAC,CAAC;MACjDO,GAAG,CAACZ,IAAI,GAAGK,CAAC,CAACL,IAAI;MACjBG,OAAO,CAACS,GAAG,CAACN,MAAM,CAAC,GAAGM,GAAG;IAC3B,CAAC,CAAC;IACJ,OAAOT,OAAO;EAChB;;EAEAY,WAAWA,CAAEC,IAAI,EAAEpC,GAAG,EAAE;IACtB,OAAO,IAAI,CAACqC,UAAU,CAACD,IAAI,EAAEpC,GAAG,CAAC,CAACT,GAAG,CAAC,CAAA+C,KAAK,KAAI;MAC7C,IAAI,CAACC,iBAAiB,CAACD,KAAK,CAAC;MAC7BA,KAAK,CAACtC,GAAG,GAAG,IAAAwC,6BAAsB,EAACF,KAAK,CAACtC,GAAG,CAAC;MAC7C,OAAOsC,KAAK;IACd,CAAC,CAAC;EACJ;;EAEAC,iBAAiBA,CAAED,KAAK,EAAE;IACxB,MAAM,EAAEtC,GAAG,EAAEyC,IAAI,CAAC,CAAC,GAAGH,KAAK;IAC3B,IAAII,UAAU,GAAGJ,KAAK,CAACI,UAAU,IAAI,EAAE;IACvC,IAAI1C,GAAG,IAAIyC,IAAI,EAAE;MACf,IAAIE,MAAM,GAAG3C,GAAG,CAAC2C,MAAM,IAAI,EAAE;MAC7BA,MAAM,CAACC,OAAO,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;QACvB,IAAID,CAAC,CAACd,IAAI,KAAK,SAAS,EAAE;UACxBW,UAAU,CAACK,IAAI,CAACN,IAAI,CAACK,CAAC,CAAC,CAAC;QAC1B;QACA,IAAID,CAAC,CAACd,IAAI,KAAK,WAAW,EAAE;UAC1B,IAAIiB,KAAK,GAAGP,IAAI,CAACK,CAAC,CAAC,IAAI,EAAE;UACzB,IAAIG,KAAK,CAACC,OAAO,CAACF,KAAK,CAAC,EAAE,CAAE;YAC1BA,KAAK,CAACJ,OAAO,CAAC,CAAAC,CAAC,KAAIH,UAAU,CAACK,IAAI,CAACF,CAAC,CAAC,CAAC;UACxC,CAAC,MAAM;YACL,IAAIC,CAAC,GAAG,CAAC;YACT,OAAO,CAAC,GAAG,CAACA,CAAC,GAAG,CAAC,IAAI,EAAE,IAAIE,KAAK,CAACG,MAAM,EAAE;cACvCT,UAAU,CAACK,IAAI,CAAC,IAAI,GAAGC,KAAK,CAACI,KAAK,CAAC,CAAC,GAAGN,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAACA,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;cACjEA,CAAC,EAAE;YACL;UACF;QACF;MACF,CAAC,CAAC;MACFR,KAAK,CAACI,UAAU,GAAG,CAAC,GAAG,IAAIW,GAAG,CAACX,UAAU,CAAC,CAAC;IAC7C;IACA,OAAOJ,KAAK;EACd;;EAEAD,UAAUA,CAAED,IAAI,EAAEpC,GAAG,EAAE;IACrBA,GAAG,GAAGA,GAAG,IAAI,IAAI,CAACA,GAAG;IACrB,MAAMsD,YAAY,GAAG,IAAAC,qBAAY,EAACvD,GAAG,EAAE,IAAI,CAACC,GAAG,CAAC;IAChD,IAAI,CAAC,IAAI,CAACW,eAAe,IAAI,CAAC,IAAI,CAACI,qBAAqB,EAAE;MACxD,MAAM,IAAIwC,KAAK,CAAE,iEAAgE,IAAI,CAAClD,KAAM,EAAC,CAAC;IAChG;IACA,MAAM,EAAEmD,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAC7C,eAAe;IACjD,MAAM,EAAEI,qBAAqB,CAAC,CAAC,GAAG,IAAI;IACtC,OAAOoB,IAAI,CAAC7C,GAAG,CAAC,CAAAU,GAAG,KAAI;MACrB,MAAM,EAAEyD,OAAO,CAAC,CAAC,GAAGzD,GAAG;MACvB,MAAM0D,OAAO,GAAIF,gBAAgB,CAACC,OAAO,CAAC,GAAI1C,qBAAqB,CAAC4C,eAAe,CAAC3D,GAAG,CAAC,GAAGqD,YAAY;MACvG,OAAOK,OAAO,CAACE,SAAS,CAAC5D,GAAG,CAAC;IAC/B,CAAC,CAAC;EACJ;;EAEA6D,YAAYA,CAAEJ,OAAO,EAAE1D,GAAG,EAAE;IAC1BA,GAAG,GAAGA,GAAG,IAAI,IAAI,CAACA,GAAG;IACrB,IAAI,EAAEG,IAAI,CAAC,CAAC,GAAG,IAAI;IACnB,OAAO,IAAA4D,iBAAQ,EAAC/D,GAAG,EAAE,EAAE0D,OAAO,EAAEvD,IAAI,CAAC,CAAC,CAAC;EACzC;;EAEA,MAAM6D,IAAIA,CAAEtC,MAAM,EAAEuC,QAAQ,EAAEC,MAAM,GAAG,EAAE,EAAEC,OAAO,GAAG,CAAC,CAAC,EAAE;IACvD,IAAI;MACF,MAAMC,GAAG,GAAG,MAAMH,QAAQ,CAACD,IAAI,CAACtC,MAAM,EAAEwC,MAAM,EAAEC,OAAO,CAAC;MACxD,OAAOC,GAAG;IACZ,CAAC,CAAC,OAAOC,GAAG,EAAE;MACZ;MACA;MACA,OAAO,IAAI;IACb;EACF;;EAEA,MAAMC,YAAYA,CAAEL,QAAQ,EAAE,EAAE1C,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;IAC9CA,OAAO,GAAGA,OAAO,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC;IAClE,IAAIgD,MAAM,GAAG,MAAMC,OAAO,CAACC,GAAG;MAC5BlD,OAAO,CAAChC,GAAG,CAAC,CAAAkC,CAAC;MACX,IAAI,CAACuC,IAAI,CAACvC,CAAC,EAAEwC,QAAQ,CAAC;MACnBS,IAAI,CAAC,CAAAN,GAAG,KAAIA,GAAG,CAAC;MAChBO,KAAK,CAAC,CAAAN,GAAG,KAAI,IAAI,CAACpE,GAAG,CAAC2E,KAAK,CAAE,IAAGX,QAAQ,CAACP,OAAQ,qBAAoBjC,CAAE,YAAW4C,GAAI,EAAC,CAAC,CAAC;IAChG,CAAC;IACD,OAAOE,MAAM,CAACM,MAAM,CAAC,CAAChC,CAAC,EAAEiC,CAAC,EAAEhC,CAAC,KAAK;MAChC,IAAI1B,IAAI,GAAGG,OAAO,CAACuB,CAAC,CAAC;MACrBD,CAAC,CAACzB,IAAI,CAAC,GAAG0D,CAAC;MACX,OAAOjC,CAAC;IACV,CAAC,EAAE,CAAC,CAAC,CAAC;EACR;;EAEAkC,qBAAqBA,CAAEpF,WAAW,EAAE;IAClC,IAAI4B,OAAO,GAAG,IAAI,CAACF,mBAAmB,CAAC,CAAC;IACxC,OAAOlC,MAAM,CAACC,IAAI,CAACmC,OAAO,CAAC;IACxBlC,MAAM,CAAC,CAAAqC,MAAM,KAAIhC,iBAAiB,CAACC,WAAW,EAAE4B,OAAO,CAACG,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC;EAC/E;;EAEA,MAAMsD,eAAeA,CAAErF,WAAW,EAAEsE,QAAQ,EAAE;IAC5C,IAAI,EAAE/E,UAAU,EAAEqC,OAAO,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC0D,gCAAgC,CAACtF,WAAW,EAAEsE,QAAQ,CAAC;;IAEhG/E,UAAU,GAAGD,mBAAmB,CAACC,UAAU,CAAC;IAC5C,OAAO,EAAEqC,OAAO,EAAErC,UAAU,CAAC,CAAC;EAChC;;EAEA,MAAMgG,cAAcA,CAAEC,eAAe,EAAE;IACrC,MAAM,EAAEC,aAAa,EAAEC,kBAAkB,CAAC,CAAC,GAAG,MAAM,IAAI,CAACC,SAAS,CAACH,eAAe,CAAC;IACnF,IAAIC,aAAa,EAAE;MACjB;MACA,MAAMG,qBAAqB,GAAG,MAAM,IAAI,CAACC,uBAAuB,CAACH,kBAAkB,CAAC;MACpF,MAAM9D,OAAO,GAAG,IAAI,CAACwD,qBAAqB,CAACQ,qBAAqB,CAAC;MACjE,IAAIrG,UAAU,GAAG,IAAI,CAACuG,sBAAsB,CAAClE,OAAO,CAAC;;MAErDrC,UAAU,GAAGD,mBAAmB,CAACC,UAAU,CAAC;MAC5C,OAAO,EAAEqC,OAAO,EAAErC,UAAU,EAAE,CAAC,GAAGA,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;IAC5D;IACA,OAAO,EAACqC,OAAO,EAAE,EAAE,EAAErC,UAAU,EAAE,EAAE,EAAC;EACtC;;EAEA,MAAM+F,gCAAgCA,CAAEtF,WAAW,EAAEsE,QAAQ,EAAE;IAC7D,IAAI1C,OAAO,GAAG,IAAI,CAACwD,qBAAqB,CAACpF,WAAW,CAAC;IACrD,IAAI+F,QAAQ,GAAG,KAAK;IACpB;IACA,IAAI,IAAAC,qBAAW,EAACpE,OAAO,EAAE,CAAC,2BAA2B,CAAC,CAAC,EAAE;MACvDmE,QAAQ,GAAG,MAAM,IAAI,CAACE,gBAAgB,CAAC3B,QAAQ,CAAC;IAClD;IACA,IAAI/E,UAAU;IACd,IAAIwG,QAAQ,EAAE;MACZxG,UAAU,GAAG,MAAM,IAAI,CAAC2G,mBAAmB,CAAC5B,QAAQ,CAAC;IACvD,CAAC,MAAM;MACL/E,UAAU,GAAG,IAAI,CAACuG,sBAAsB,CAAClE,OAAO,CAAC;IACnD;;IAEA,OAAO,EAAEA,OAAO,EAAErC,UAAU,CAAC,CAAC;EAChC;;EAEA,MAAMoG,SAASA,CAAEH,eAAe,EAAE;IAChC;IACA;IACA;IACA,MAAMW,WAAW,GAAG,MAAM,IAAI,CAAC3F,IAAI,CAAC4F,GAAG,CAACC,YAAY,CAACb,eAAe,EAAE,oEAAoE,CAAC;IAC3I,MAAMC,aAAa,GAAGU,WAAW,KAAK,KAAK;IAC3C,IAAIV,aAAa,EAAE;MACjB,MAAMC,kBAAkB,GAAI,KAAIS,WAAW,CAAC1C,KAAK,CAAC,CAAC,EAAE,CAAE,EAAC,EAAC;MACzD,OAAO,EAAEgC,aAAa,EAAEC,kBAAkB,CAAC,CAAC;IAC9C,CAAC,MAAM;MACL,OAAO,EAAED,aAAa,EAAEC,kBAAkB,EAAES,WAAW,CAAC,CAAC;IAC3D;EACF;;EAEA,MAAMN,uBAAuBA,CAAEL,eAAe,EAAE;IAC9C,OAAO,IAAI,CAAChF,IAAI,CAAC4F,GAAG,CAACE,iBAAiB,CAACd,eAAe,CAAC;EACzD;;EAEA,MAAMU,mBAAmBA,CAAE5B,QAAQ,EAAE;IACnC,IAAIiC,MAAM,GAAG,CAAC,CAAC;IACf,IAAI9G,IAAI,GAAGD,MAAM,CAACC,IAAI,CAAC+G,sBAAa,CAAC;IACrC,KAAK,IAAIrD,CAAC,IAAI1D,IAAI,EAAE;MAClB8G,MAAM,CAACpD,CAAC,CAAC,GAAG,MAAM,IAAI,CAACsD,iBAAiB,CAACnC,QAAQ,EAAEkC,sBAAa,CAACrD,CAAC,CAAC,CAACvC,EAAE,CAAC;IACzE;IACA,OAAO2F,MAAM;EACf;;EAEAT,sBAAsBA,CAAElE,OAAO,EAAEmE,QAAQ,EAAE;IACzC,OAAOvG,MAAM,CAACC,IAAI,CAAC+G,sBAAa,CAAC;IAC9B5G,GAAG,CAAC,CAAAuD,CAAC,KAAI;MACR,OAAO,CAACA,CAAC,EAAE,IAAA6C,qBAAW,EAACpE,OAAO,EAAE4E,sBAAa,CAACrD,CAAC,CAAC,CAACvB,OAAO,CAAC,CAAC;IAC5D,CAAC,CAAC;IACDsD,MAAM,CAAC,CAAC/F,GAAG,EAAEkE,KAAK,KAAK;MACtBlE,GAAG,CAACkE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAGA,KAAK,CAAC,CAAC,CAAC;MACxB,OAAOlE,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC,CAAC;EACV;;EAEA,MAAMsH,iBAAiBA,CAAEnC,QAAQ,EAAEoC,WAAW,EAAE;IAC9C;IACA,IAAIlC,OAAO,GAAG,EAAEmC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC/B,IAAIlC,GAAG,GAAG,MAAM,IAAI,CAACJ,IAAI,CAAC,mBAAmB,EAAEC,QAAQ,EAAE,CAACoC,WAAW,CAAC,EAAElC,OAAO,CAAC;IAChF,OAAOC,GAAG;EACZ;;EAEA,MAAMwB,gBAAgBA,CAAE3B,QAAQ,EAAE;IAChC,IAAI;MACF,IAAIsC,KAAK,GAAG,MAAM,IAAI,CAACH,iBAAiB,CAACnC,QAAQ,EAAEkC,sBAAa,CAACK,MAAM,CAACjG,EAAE,CAAC;MAC3E,IAAIgG,KAAK,KAAK,IAAI,EAAE;QAClB,IAAIE,MAAM,GAAG,MAAM,IAAI,CAACL,iBAAiB,CAACnC,QAAQ,EAAE,YAAY,CAAC;QACjE,OAAO,EAAEwC,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAK,IAAI,CAAC;MAC9C;MACA,OAAO,KAAK;IACd,CAAC,CAAC,OAAOpC,GAAG,EAAE;MACZ,OAAOG,OAAO,CAACkC,MAAM,CAACrC,GAAG,CAAC;IAC5B;EACF;AACF,CAACsC,OAAA,CAAA7G,cAAA,GAAAA,cAAA,KAAA8G,QAAA,GAAAD,OAAA,CAAA3H,OAAA;;AAEcc,cAAc"} \ No newline at end of file diff --git a/dist/lib/EventDecoder.js b/dist/lib/EventDecoder.js index 4293ecc..e12b45a 100755 --- a/dist/lib/EventDecoder.js +++ b/dist/lib/EventDecoder.js @@ -5,10 +5,10 @@ var _abi = require("@ethersproject/abi"); function EventDecoder(abi, logger) { const contractInterface = new _abi.Interface((0, _utils.addSignatureDataToAbi)(abi)); - const getEventAbi = topics => { + const getEventAbi = (topics) => { topics = [...topics]; const sigHash = (0, _rskUtils.remove0x)(topics.shift()); - let events = abi.filter(i => { + let events = abi.filter((i) => { let { indexed, signature } = (0, _utils.getSignatureDataFromAbi)(i); return signature === sigHash && indexed === topics.length; }); @@ -29,7 +29,7 @@ function EventDecoder(abi, logger) { const encodeElement = (type, decoded) => { if (Array.isArray(decoded)) { - decoded = decoded.map(d => formatElement(type, d)); + decoded = decoded.map((d) => formatElement(type, d)); if (decoded.length === 1) decoded = decoded.join(); } else { decoded = formatElement(type, decoded); @@ -37,7 +37,7 @@ function EventDecoder(abi, logger) { return decoded; }; - const decodeLog = log => { + const decodeLog = (log) => { try { const { eventFragment, name, args, topic } = contractInterface.parseLog(log); @@ -47,8 +47,8 @@ function EventDecoder(abi, logger) { for (const i in eventFragment.inputs) { parsedArgs.push( - encodeElement(eventFragment.inputs[i].type, args[i])); - + encodeElement(eventFragment.inputs[i].type, args[i]) + ); } return Object.assign({}, log, { @@ -56,8 +56,8 @@ function EventDecoder(abi, logger) { event: name, address, args: parsedArgs, - abi: JSON.parse(eventFragment.format('json')) }); - + abi: JSON.parse(eventFragment.format('json')) + }); } catch (e) { // temporary fix to avoid ethers "no matching event" error spam if (!e.message.includes('no matching event')) { @@ -68,6 +68,7 @@ function EventDecoder(abi, logger) { }; return Object.freeze({ decodeLog, getEventAbi }); -}var _default = +}var _default = exports.default = -EventDecoder;exports.default = _default; \ No newline at end of file +EventDecoder; +//# sourceMappingURL=EventDecoder.js.map \ No newline at end of file diff --git a/dist/lib/EventDecoder.js.map b/dist/lib/EventDecoder.js.map index 8b3e596..968b9ef 100644 --- a/dist/lib/EventDecoder.js.map +++ b/dist/lib/EventDecoder.js.map @@ -1 +1 @@ -{"version":3,"file":"EventDecoder.js","names":["_utils","require","_rskUtils","_abi","EventDecoder","abi","logger","contractInterface","Interface","addSignatureDataToAbi","getEventAbi","topics","sigHash","remove0x","shift","events","filter","i","indexed","signature","getSignatureDataFromAbi","length","Error","eventABI","formatElement","type","decoded","_isIndexed","hash","_isBigNumber","toHexString","res","add0x","Buffer","isBuffer","bufferToHex","toString","toLowerCase","encodeElement","Array","isArray","map","d","join","decodeLog","log","eventFragment","name","args","topic","parseLog","address","parsedArgs","inputs","push","Object","assign","event","JSON","parse","format","e","error","freeze","_default","exports","default"],"sources":["../../src/lib/EventDecoder.js"],"sourcesContent":["import { addSignatureDataToAbi, getSignatureDataFromAbi } from './utils'\nimport { remove0x, add0x, bufferToHex } from '@rsksmart/rsk-utils'\nimport { Interface } from '@ethersproject/abi'\n\nfunction EventDecoder (abi, logger) {\n const contractInterface = new Interface(addSignatureDataToAbi(abi))\n\n const getEventAbi = topics => {\n topics = [...topics]\n const sigHash = remove0x(topics.shift())\n let events = abi.filter(i => {\n let { indexed, signature } = getSignatureDataFromAbi(i)\n return signature === sigHash && indexed === topics.length\n })\n if (events.length > 1) throw new Error('Duplicate events in ABI')\n const eventABI = events[0]\n return { eventABI, topics }\n }\n\n const formatElement = (type, decoded) => {\n if (decoded._isIndexed) return { _isIndexed: true, hash: decoded.hash }\n if (decoded._isBigNumber) {\n return decoded.toHexString()\n }\n const res = add0x(Buffer.isBuffer(decoded) ? bufferToHex(decoded) : decoded.toString(16))\n if (type === 'address' || type === 'address[]') return res.toLowerCase()\n return res\n }\n\n const encodeElement = (type, decoded) => {\n if (Array.isArray(decoded)) {\n decoded = decoded.map(d => formatElement(type, d))\n if (decoded.length === 1) decoded = decoded.join()\n } else {\n decoded = formatElement(type, decoded)\n }\n return decoded\n }\n\n const decodeLog = log => {\n try {\n const { eventFragment, name, args, topic } = contractInterface.parseLog(log)\n\n const { address } = log\n\n const parsedArgs = []\n\n for (const i in eventFragment.inputs) {\n parsedArgs.push(\n encodeElement(eventFragment.inputs[i].type, args[i])\n )\n }\n\n return Object.assign({}, log, {\n signature: remove0x(topic),\n event: name,\n address,\n args: parsedArgs,\n abi: JSON.parse(eventFragment.format('json'))\n })\n } catch (e) {\n logger.error(e)\n return log\n }\n }\n\n return Object.freeze({ decodeLog, getEventAbi })\n}\n\nexport default EventDecoder\n"],"mappings":"oGAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;;AAEA,SAASG,YAAYA,CAAEC,GAAG,EAAEC,MAAM,EAAE;EAClC,MAAMC,iBAAiB,GAAG,IAAIC,cAAS,CAAC,IAAAC,4BAAqB,EAACJ,GAAG,CAAC,CAAC;;EAEnE,MAAMK,WAAW,GAAGA,CAAAC,MAAM,KAAI;IAC5BA,MAAM,GAAG,CAAC,GAAGA,MAAM,CAAC;IACpB,MAAMC,OAAO,GAAG,IAAAC,kBAAQ,EAACF,MAAM,CAACG,KAAK,CAAC,CAAC,CAAC;IACxC,IAAIC,MAAM,GAAGV,GAAG,CAACW,MAAM,CAAC,CAAAC,CAAC,KAAI;MAC3B,IAAI,EAAEC,OAAO,EAAEC,SAAS,CAAC,CAAC,GAAG,IAAAC,8BAAuB,EAACH,CAAC,CAAC;MACvD,OAAOE,SAAS,KAAKP,OAAO,IAAIM,OAAO,KAAKP,MAAM,CAACU,MAAM;IAC3D,CAAC,CAAC;IACF,IAAIN,MAAM,CAACM,MAAM,GAAG,CAAC,EAAE,MAAM,IAAIC,KAAK,CAAC,yBAAyB,CAAC;IACjE,MAAMC,QAAQ,GAAGR,MAAM,CAAC,CAAC,CAAC;IAC1B,OAAO,EAAEQ,QAAQ,EAAEZ,MAAM,CAAC,CAAC;EAC7B,CAAC;;EAED,MAAMa,aAAa,GAAGA,CAACC,IAAI,EAAEC,OAAO,KAAK;IACvC,IAAIA,OAAO,CAACC,UAAU,EAAE,OAAO,EAAEA,UAAU,EAAE,IAAI,EAAEC,IAAI,EAAEF,OAAO,CAACE,IAAI,CAAC,CAAC;IACvE,IAAIF,OAAO,CAACG,YAAY,EAAE;MACxB,OAAOH,OAAO,CAACI,WAAW,CAAC,CAAC;IAC9B;IACA,MAAMC,GAAG,GAAG,IAAAC,eAAK,EAACC,MAAM,CAACC,QAAQ,CAACR,OAAO,CAAC,GAAG,IAAAS,qBAAW,EAACT,OAAO,CAAC,GAAGA,OAAO,CAACU,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzF,IAAIX,IAAI,KAAK,SAAS,IAAIA,IAAI,KAAK,WAAW,EAAE,OAAOM,GAAG,CAACM,WAAW,CAAC,CAAC;IACxE,OAAON,GAAG;EACZ,CAAC;;EAED,MAAMO,aAAa,GAAGA,CAACb,IAAI,EAAEC,OAAO,KAAK;IACvC,IAAIa,KAAK,CAACC,OAAO,CAACd,OAAO,CAAC,EAAE;MAC1BA,OAAO,GAAGA,OAAO,CAACe,GAAG,CAAC,CAAAC,CAAC,KAAIlB,aAAa,CAACC,IAAI,EAAEiB,CAAC,CAAC,CAAC;MAClD,IAAIhB,OAAO,CAACL,MAAM,KAAK,CAAC,EAAEK,OAAO,GAAGA,OAAO,CAACiB,IAAI,CAAC,CAAC;IACpD,CAAC,MAAM;MACLjB,OAAO,GAAGF,aAAa,CAACC,IAAI,EAAEC,OAAO,CAAC;IACxC;IACA,OAAOA,OAAO;EAChB,CAAC;;EAED,MAAMkB,SAAS,GAAGA,CAAAC,GAAG,KAAI;IACvB,IAAI;MACF,MAAM,EAAEC,aAAa,EAAEC,IAAI,EAAEC,IAAI,EAAEC,KAAK,CAAC,CAAC,GAAG1C,iBAAiB,CAAC2C,QAAQ,CAACL,GAAG,CAAC;;MAE5E,MAAM,EAAEM,OAAO,CAAC,CAAC,GAAGN,GAAG;;MAEvB,MAAMO,UAAU,GAAG,EAAE;;MAErB,KAAK,MAAMnC,CAAC,IAAI6B,aAAa,CAACO,MAAM,EAAE;QACpCD,UAAU,CAACE,IAAI;UACbhB,aAAa,CAACQ,aAAa,CAACO,MAAM,CAACpC,CAAC,CAAC,CAACQ,IAAI,EAAEuB,IAAI,CAAC/B,CAAC,CAAC;QACrD,CAAC;MACH;;MAEA,OAAOsC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAEX,GAAG,EAAE;QAC5B1B,SAAS,EAAE,IAAAN,kBAAQ,EAACoC,KAAK,CAAC;QAC1BQ,KAAK,EAAEV,IAAI;QACXI,OAAO;QACPH,IAAI,EAAEI,UAAU;QAChB/C,GAAG,EAAEqD,IAAI,CAACC,KAAK,CAACb,aAAa,CAACc,MAAM,CAAC,MAAM,CAAC;MAC9C,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOC,CAAC,EAAE;MACVvD,MAAM,CAACwD,KAAK,CAACD,CAAC,CAAC;MACf,OAAOhB,GAAG;IACZ;EACF,CAAC;;EAED,OAAOU,MAAM,CAACQ,MAAM,CAAC,EAAEnB,SAAS,EAAElC,WAAW,CAAC,CAAC,CAAC;AAClD,CAAC,IAAAsD,QAAA,GAAAC,OAAA,CAAAC,OAAA;;AAEc9D,YAAY"} \ No newline at end of file +{"version":3,"file":"EventDecoder.js","names":["_utils","require","_rskUtils","_abi","EventDecoder","abi","logger","contractInterface","Interface","addSignatureDataToAbi","getEventAbi","topics","sigHash","remove0x","shift","events","filter","i","indexed","signature","getSignatureDataFromAbi","length","Error","eventABI","formatElement","type","decoded","_isIndexed","hash","_isBigNumber","toHexString","res","add0x","Buffer","isBuffer","bufferToHex","toString","toLowerCase","encodeElement","Array","isArray","map","d","join","decodeLog","log","eventFragment","name","args","topic","parseLog","address","parsedArgs","inputs","push","Object","assign","event","JSON","parse","format","e","message","includes","error","freeze","_default","exports","default"],"sources":["../../src/lib/EventDecoder.js"],"sourcesContent":["import { addSignatureDataToAbi, getSignatureDataFromAbi } from './utils'\nimport { remove0x, add0x, bufferToHex } from '@rsksmart/rsk-utils'\nimport { Interface } from '@ethersproject/abi'\n\nfunction EventDecoder (abi, logger) {\n const contractInterface = new Interface(addSignatureDataToAbi(abi))\n\n const getEventAbi = topics => {\n topics = [...topics]\n const sigHash = remove0x(topics.shift())\n let events = abi.filter(i => {\n let { indexed, signature } = getSignatureDataFromAbi(i)\n return signature === sigHash && indexed === topics.length\n })\n if (events.length > 1) throw new Error('Duplicate events in ABI')\n const eventABI = events[0]\n return { eventABI, topics }\n }\n\n const formatElement = (type, decoded) => {\n if (decoded._isIndexed) return { _isIndexed: true, hash: decoded.hash }\n if (decoded._isBigNumber) {\n return decoded.toHexString()\n }\n const res = add0x(Buffer.isBuffer(decoded) ? bufferToHex(decoded) : decoded.toString(16))\n if (type === 'address' || type === 'address[]') return res.toLowerCase()\n return res\n }\n\n const encodeElement = (type, decoded) => {\n if (Array.isArray(decoded)) {\n decoded = decoded.map(d => formatElement(type, d))\n if (decoded.length === 1) decoded = decoded.join()\n } else {\n decoded = formatElement(type, decoded)\n }\n return decoded\n }\n\n const decodeLog = log => {\n try {\n const { eventFragment, name, args, topic } = contractInterface.parseLog(log)\n\n const { address } = log\n\n const parsedArgs = []\n\n for (const i in eventFragment.inputs) {\n parsedArgs.push(\n encodeElement(eventFragment.inputs[i].type, args[i])\n )\n }\n\n return Object.assign({}, log, {\n signature: remove0x(topic),\n event: name,\n address,\n args: parsedArgs,\n abi: JSON.parse(eventFragment.format('json'))\n })\n } catch (e) {\n // temporary fix to avoid ethers \"no matching event\" error spam\n if (!e.message.includes('no matching event')) {\n logger.error(e)\n }\n return log\n }\n }\n\n return Object.freeze({ decodeLog, getEventAbi })\n}\n\nexport default EventDecoder\n"],"mappings":"oGAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;;AAEA,SAASG,YAAYA,CAAEC,GAAG,EAAEC,MAAM,EAAE;EAClC,MAAMC,iBAAiB,GAAG,IAAIC,cAAS,CAAC,IAAAC,4BAAqB,EAACJ,GAAG,CAAC,CAAC;;EAEnE,MAAMK,WAAW,GAAGA,CAAAC,MAAM,KAAI;IAC5BA,MAAM,GAAG,CAAC,GAAGA,MAAM,CAAC;IACpB,MAAMC,OAAO,GAAG,IAAAC,kBAAQ,EAACF,MAAM,CAACG,KAAK,CAAC,CAAC,CAAC;IACxC,IAAIC,MAAM,GAAGV,GAAG,CAACW,MAAM,CAAC,CAAAC,CAAC,KAAI;MAC3B,IAAI,EAAEC,OAAO,EAAEC,SAAS,CAAC,CAAC,GAAG,IAAAC,8BAAuB,EAACH,CAAC,CAAC;MACvD,OAAOE,SAAS,KAAKP,OAAO,IAAIM,OAAO,KAAKP,MAAM,CAACU,MAAM;IAC3D,CAAC,CAAC;IACF,IAAIN,MAAM,CAACM,MAAM,GAAG,CAAC,EAAE,MAAM,IAAIC,KAAK,CAAC,yBAAyB,CAAC;IACjE,MAAMC,QAAQ,GAAGR,MAAM,CAAC,CAAC,CAAC;IAC1B,OAAO,EAAEQ,QAAQ,EAAEZ,MAAM,CAAC,CAAC;EAC7B,CAAC;;EAED,MAAMa,aAAa,GAAGA,CAACC,IAAI,EAAEC,OAAO,KAAK;IACvC,IAAIA,OAAO,CAACC,UAAU,EAAE,OAAO,EAAEA,UAAU,EAAE,IAAI,EAAEC,IAAI,EAAEF,OAAO,CAACE,IAAI,CAAC,CAAC;IACvE,IAAIF,OAAO,CAACG,YAAY,EAAE;MACxB,OAAOH,OAAO,CAACI,WAAW,CAAC,CAAC;IAC9B;IACA,MAAMC,GAAG,GAAG,IAAAC,eAAK,EAACC,MAAM,CAACC,QAAQ,CAACR,OAAO,CAAC,GAAG,IAAAS,qBAAW,EAACT,OAAO,CAAC,GAAGA,OAAO,CAACU,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzF,IAAIX,IAAI,KAAK,SAAS,IAAIA,IAAI,KAAK,WAAW,EAAE,OAAOM,GAAG,CAACM,WAAW,CAAC,CAAC;IACxE,OAAON,GAAG;EACZ,CAAC;;EAED,MAAMO,aAAa,GAAGA,CAACb,IAAI,EAAEC,OAAO,KAAK;IACvC,IAAIa,KAAK,CAACC,OAAO,CAACd,OAAO,CAAC,EAAE;MAC1BA,OAAO,GAAGA,OAAO,CAACe,GAAG,CAAC,CAAAC,CAAC,KAAIlB,aAAa,CAACC,IAAI,EAAEiB,CAAC,CAAC,CAAC;MAClD,IAAIhB,OAAO,CAACL,MAAM,KAAK,CAAC,EAAEK,OAAO,GAAGA,OAAO,CAACiB,IAAI,CAAC,CAAC;IACpD,CAAC,MAAM;MACLjB,OAAO,GAAGF,aAAa,CAACC,IAAI,EAAEC,OAAO,CAAC;IACxC;IACA,OAAOA,OAAO;EAChB,CAAC;;EAED,MAAMkB,SAAS,GAAGA,CAAAC,GAAG,KAAI;IACvB,IAAI;MACF,MAAM,EAAEC,aAAa,EAAEC,IAAI,EAAEC,IAAI,EAAEC,KAAK,CAAC,CAAC,GAAG1C,iBAAiB,CAAC2C,QAAQ,CAACL,GAAG,CAAC;;MAE5E,MAAM,EAAEM,OAAO,CAAC,CAAC,GAAGN,GAAG;;MAEvB,MAAMO,UAAU,GAAG,EAAE;;MAErB,KAAK,MAAMnC,CAAC,IAAI6B,aAAa,CAACO,MAAM,EAAE;QACpCD,UAAU,CAACE,IAAI;UACbhB,aAAa,CAACQ,aAAa,CAACO,MAAM,CAACpC,CAAC,CAAC,CAACQ,IAAI,EAAEuB,IAAI,CAAC/B,CAAC,CAAC;QACrD,CAAC;MACH;;MAEA,OAAOsC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAEX,GAAG,EAAE;QAC5B1B,SAAS,EAAE,IAAAN,kBAAQ,EAACoC,KAAK,CAAC;QAC1BQ,KAAK,EAAEV,IAAI;QACXI,OAAO;QACPH,IAAI,EAAEI,UAAU;QAChB/C,GAAG,EAAEqD,IAAI,CAACC,KAAK,CAACb,aAAa,CAACc,MAAM,CAAC,MAAM,CAAC;MAC9C,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOC,CAAC,EAAE;MACV;MACA,IAAI,CAACA,CAAC,CAACC,OAAO,CAACC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;QAC5CzD,MAAM,CAAC0D,KAAK,CAACH,CAAC,CAAC;MACjB;MACA,OAAOhB,GAAG;IACZ;EACF,CAAC;;EAED,OAAOU,MAAM,CAACU,MAAM,CAAC,EAAErB,SAAS,EAAElC,WAAW,CAAC,CAAC,CAAC;AAClD,CAAC,IAAAwD,QAAA,GAAAC,OAAA,CAAAC,OAAA;;AAEchE,YAAY"} \ No newline at end of file diff --git a/dist/lib/btcUtils.js b/dist/lib/btcUtils.js index bcc18f7..3d3eb99 100755 --- a/dist/lib/btcUtils.js +++ b/dist/lib/btcUtils.js @@ -1,23 +1,23 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.rskAddressFromBtcPublicKey = exports.compressPublic = exports.decompressPublic = exports.parsePublic = exports.pubToAddress = exports.h160toAddress = exports.h160 = exports.sha256 = void 0;var _crypto = _interopRequireDefault(require("crypto")); +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.sha256 = exports.rskAddressFromBtcPublicKey = exports.pubToAddress = exports.parsePublic = exports.h160toAddress = exports.h160 = exports.decompressPublic = exports.compressPublic = void 0;var _crypto = _interopRequireDefault(require("crypto")); var bs58 = _interopRequireWildcard(require("bs58")); var _rskUtils = require("@rsksmart/rsk-utils"); -var _secp256k = _interopRequireDefault(require("secp256k1"));function _getRequireWildcardCache() {if (typeof WeakMap !== "function") return null;var cache = new WeakMap();_getRequireWildcardCache = function () {return cache;};return cache;}function _interopRequireWildcard(obj) {if (obj && obj.__esModule) {return obj;}if (obj === null || typeof obj !== "object" && typeof obj !== "function") {return { default: obj };}var cache = _getRequireWildcardCache();if (cache && cache.has(obj)) {return cache.get(obj);}var newObj = {};var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var key in obj) {if (Object.prototype.hasOwnProperty.call(obj, key)) {var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;if (desc && (desc.get || desc.set)) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}newObj.default = obj;if (cache) {cache.set(obj, newObj);}return newObj;}function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} +var _secp256k = _interopRequireDefault(require("secp256k1"));function _getRequireWildcardCache(e) {if ("function" != typeof WeakMap) return null;var r = new WeakMap(),t = new WeakMap();return (_getRequireWildcardCache = function (e) {return e ? t : r;})(e);}function _interopRequireWildcard(e, r) {if (!r && e && e.__esModule) return e;if (null === e || "object" != typeof e && "function" != typeof e) return { default: e };var t = _getRequireWildcardCache(r);if (t && t.has(e)) return t.get(e);var n = { __proto__: null },a = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) {var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];}return n.default = e, t && t.set(e, n), n;}function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} const PREFIXES = { mainnet: { pubKeyHash: '00', - scriptHash: '05' }, - + scriptHash: '05' + }, testnet: { pubKeyHash: '6F', - scriptHash: 'C4' }, - + scriptHash: 'C4' + }, regtest: { pubKeyHash: '00', - scriptHash: '00' } }; - - -const getNetPrefix = netName => { + scriptHash: '00' + } +}; +const getNetPrefix = (netName) => { let prefixes = PREFIXES[netName]; if (!prefixes) throw new Error(`Unknown network ${netName}`); return prefixes; @@ -48,8 +48,9 @@ const parsePublic = (pub, compressed) => { return _secp256k.default.publicKeyConvert(pub, compressed); };exports.parsePublic = parsePublic; -const decompressPublic = compressed => parsePublic(compressed, false).toString('hex');exports.decompressPublic = decompressPublic; +const decompressPublic = (compressed) => parsePublic(compressed, false).toString('hex');exports.decompressPublic = decompressPublic; -const compressPublic = pub => parsePublic(pub, true).toString('hex');exports.compressPublic = compressPublic; +const compressPublic = (pub) => parsePublic(pub, true).toString('hex');exports.compressPublic = compressPublic; -const rskAddressFromBtcPublicKey = cpk => (0, _rskUtils.add0x)((0, _rskUtils.keccak256)(parsePublic(cpk, false).slice(1)).slice(-40));exports.rskAddressFromBtcPublicKey = rskAddressFromBtcPublicKey; \ No newline at end of file +const rskAddressFromBtcPublicKey = (cpk) => (0, _rskUtils.add0x)((0, _rskUtils.keccak256)(parsePublic(cpk, false).slice(1)).slice(-40));exports.rskAddressFromBtcPublicKey = rskAddressFromBtcPublicKey; +//# sourceMappingURL=btcUtils.js.map \ No newline at end of file diff --git a/dist/lib/compileJsonAbis.js b/dist/lib/compileJsonAbis.js index f0ceb8e..37f76c1 100755 --- a/dist/lib/compileJsonAbis.js +++ b/dist/lib/compileJsonAbis.js @@ -12,7 +12,7 @@ const jsonPath = `${__dirname}/jsonAbis`; const ozPath = _path.default.resolve('node_modules/openzeppelin-solidity/build/contracts'); const destinationFile = `${__dirname}/compiled_abi.json`; -compileAbi([jsonPath, ozPath]).then(abi => { +compileAbi([jsonPath, ozPath]).then((abi) => { writeFile(destinationFile, JSON.stringify(abi, null, 2)). then(() => { console.log(`New ABI saved on ${destinationFile}`); @@ -25,11 +25,11 @@ async function compileAbi(dirs) { let jsonFiles = []; for (let dir of dirs) { let files = await readDir(dir); - files = files.filter(file => _path.default.extname(file) === '.json'); + files = files.filter((file) => _path.default.extname(file) === '.json'); if (!files || !files.length) throw new Error(`No json files in dir ${dir}`); - jsonFiles = jsonFiles.concat(files.map(file => `${dir}/${file}`)); + jsonFiles = jsonFiles.concat(files.map((file) => `${dir}/${file}`)); } - let abi = await Promise.all(jsonFiles.map(file => readJson(`${file}`).then(content => { + let abi = await Promise.all(jsonFiles.map((file) => readJson(`${file}`).then((content) => { return Array.isArray(content) ? content : content.abi; }))); if (!abi) throw new Error(`Invalid abi `); @@ -55,15 +55,15 @@ async function readJson(file) { function processAbi(abi) { // remove fallbacks - abi = abi.filter(a => a.type !== 'fallback'); + abi = abi.filter((a) => a.type !== 'fallback'); // remove duplicates - abi = [...new Set(abi.map(a => JSON.stringify(a)))].map(a => JSON.parse(a)); + abi = [...new Set(abi.map((a) => JSON.stringify(a)))].map((a) => JSON.parse(a)); // add signatures abi = (0, _utils.addSignatureDataToAbi)(abi); // detect 4 bytes collisions - let signatures = abi.map(a => a[_types.ABI_SIGNATURE].signature).filter(v => v); + let signatures = abi.map((a) => a[_types.ABI_SIGNATURE].signature).filter((v) => v); signatures = [...new Set(signatures)]; - let fourBytes = signatures.map(s => s.slice(0, 8)); + let fourBytes = signatures.map((s) => s.slice(0, 8)); if (fourBytes.length !== [...new Set(fourBytes)].length) { console.log(fourBytes.filter((v, i) => fourBytes.indexOf(v) !== i)); throw new Error('4bytes collision'); @@ -73,7 +73,8 @@ function processAbi(abi) { return abi; } -process.on('unhandledRejection', err => { +process.on('unhandledRejection', (err) => { console.error(err); process.exit(9); -}); \ No newline at end of file +}); +//# sourceMappingURL=compileJsonAbis.js.map \ No newline at end of file diff --git a/dist/lib/interfacesIds.js b/dist/lib/interfacesIds.js index 970a4d0..4e279ba 100755 --- a/dist/lib/interfacesIds.js +++ b/dist/lib/interfacesIds.js @@ -1,4 +1,4 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = exports.interfacesIds = void 0;var _utils = require("./utils"); +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.interfacesIds = exports.default = void 0;var _utils = require("./utils"); const erc20methods = [ 'totalSupply()', @@ -10,10 +10,10 @@ const erc20methods = [ const erc677Methods = erc20methods.concat([ -'transferAndCall(address,uint256,bytes)']); +'transferAndCall(address,uint256,bytes)'] +); - -const interfacesIds = { +const interfacesIds = exports.interfacesIds = { ERC20: makeInterface(erc20methods), ERC677: makeInterface(erc677Methods), ERC165: makeInterface(['supportsInterface(bytes4)']), @@ -26,26 +26,27 @@ const interfacesIds = { 'isApprovedForAll(address,address)', 'transferFrom(address,address,uint256)', 'safeTransferFrom(address,address,uint256)', - 'safeTransferFrom(address,address,uint256,bytes)']), - + 'safeTransferFrom(address,address,uint256,bytes)'] + ), ERC721Enumerable: makeInterface([ 'totalSupply()', 'tokenOfOwnerByIndex(address,uint256)', - 'tokenByIndex(uint256)']), - + 'tokenByIndex(uint256)'] + ), ERC721Metadata: makeInterface([ 'name()', 'symbol()', - 'tokenURI(uint256)']), - + 'tokenURI(uint256)'] + ), ERC721Exists: makeInterface([ - 'exists(uint256)']) };exports.interfacesIds = interfacesIds; - - + 'exists(uint256)'] + ) +}; function makeInterface(methods) { let id = (0, _utils.erc165IdFromMethods)(methods); return { methods, id }; -}var _default = +}var _default = exports.default = -interfacesIds;exports.default = _default; \ No newline at end of file +interfacesIds; +//# sourceMappingURL=interfacesIds.js.map \ No newline at end of file diff --git a/dist/lib/nativeContracts/FakeABI.js b/dist/lib/nativeContracts/FakeABI.js index 4e1439c..1d93829 100644 --- a/dist/lib/nativeContracts/FakeABI.js +++ b/dist/lib/nativeContracts/FakeABI.js @@ -1,26 +1,26 @@ "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = FakeABI; var _rskUtils = require("@rsksmart/rsk-utils"); var _utils = require("../utils"); -var btcUtils = _interopRequireWildcard(require("../btcUtils"));function _getRequireWildcardCache() {if (typeof WeakMap !== "function") return null;var cache = new WeakMap();_getRequireWildcardCache = function () {return cache;};return cache;}function _interopRequireWildcard(obj) {if (obj && obj.__esModule) {return obj;}if (obj === null || typeof obj !== "object" && typeof obj !== "function") {return { default: obj };}var cache = _getRequireWildcardCache();if (cache && cache.has(obj)) {return cache.get(obj);}var newObj = {};var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var key in obj) {if (Object.prototype.hasOwnProperty.call(obj, key)) {var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;if (desc && (desc.get || desc.set)) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}newObj.default = obj;if (cache) {cache.set(obj, newObj);}return newObj;} +var btcUtils = _interopRequireWildcard(require("../btcUtils"));function _getRequireWildcardCache(e) {if ("function" != typeof WeakMap) return null;var r = new WeakMap(),t = new WeakMap();return (_getRequireWildcardCache = function (e) {return e ? t : r;})(e);}function _interopRequireWildcard(e, r) {if (!r && e && e.__esModule) return e;if (null === e || "object" != typeof e && "function" != typeof e) return { default: e };var t = _getRequireWildcardCache(r);if (t && t.has(e)) return t.get(e);var n = { __proto__: null },a = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) {var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];}return n.default = e, t && t.set(e, n), n;} function FakeABI(network) { - const decodeBtcTxHash = data => { + const decodeBtcTxHash = (data) => { if ((0, _rskUtils.remove0x)(data).length === 128) { let buffer = Buffer.from((0, _rskUtils.remove0x)(data), 'hex'); data = (0, _rskUtils.add0x)(buffer.toString('ascii')); } return data; }; - const decodeArray = data => data.map(d => Array.isArray(d) ? decodeArray(d) : (0, _rskUtils.add0x)(d.toString('hex'))); + const decodeArray = (data) => data.map((d) => Array.isArray(d) ? decodeArray(d) : (0, _rskUtils.add0x)(d.toString('hex'))); - const decodeFederationData = data => { + const decodeFederationData = (data) => { let [a160, keys] = data; let address = btcUtils.h160toAddress(a160, { prefixKey: 'scriptHash', network }).toString('hex'); - keys = keys.map(d => btcUtils.rskAddressFromBtcPublicKey(d.toString('hex'))); + keys = keys.map((d) => btcUtils.rskAddressFromBtcPublicKey(d.toString('hex'))); return [address, keys]; }; - const commitFederationDecoder = data => { + const commitFederationDecoder = (data) => { const decoded = _rskUtils.rlp.decode(data); let [oldData, newData, block] = decoded; let [oldFederationAddress, oldFederationMembers] = decodeFederationData(oldData); @@ -35,102 +35,103 @@ function FakeABI(network) { { indexed: true, name: 'to', - type: 'address' }, - + type: 'address' + }, { indexed: false, name: 'blockHash', - type: 'string' }, - + type: 'string' + }, { indexed: false, name: 'value', - type: 'uint256' }], - + type: 'uint256' + }], name: 'mining_fee_topic', - type: 'event' }, - + type: 'event' + }, { // Bridge events inputs: [ { indexed: false, name: 'btcTxHash', - type: 'string' }, - + type: 'string' + }, { indexed: false, name: 'btcTx', // raw tx? - type: 'string' }], - + type: 'string' + }], name: 'release_btc_topic', - type: 'event' }, - + type: 'event' + }, { inputs: [ { indexed: false, name: 'sender', - type: 'address' }], - + type: 'address' + }], name: 'update_collections_topic', - type: 'event' }, - + type: 'event' + }, { inputs: [ { indexed: false, name: 'btcTxHash', type: 'string', - _filter: decodeBtcTxHash }, - + _filter: decodeBtcTxHash + }, { indexed: false, name: 'federatorPublicKey', - type: 'string' }, - + type: 'string' + }, { indexed: false, name: 'rskTxHash', - type: 'string' }], - + type: 'string' + }], name: 'add_signature_topic', - type: 'event' }, - + type: 'event' + }, { inputs: [ { indexed: false, name: 'oldFederationAddress', - type: 'string' }, - + type: 'string' + }, { indexed: false, name: 'oldFederationMembers', - type: 'address[]' }, - + type: 'address[]' + }, { indexed: false, name: 'newFederationAddress', - type: 'string' }, - + type: 'string' + }, { indexed: false, name: 'newFederationMembers', - type: 'address[]' }, - + type: 'address[]' + }, { indexed: false, name: 'activationBlockNumber', - type: 'string' }], - + type: 'string' + }], name: 'commit_federation_topic', type: 'event', - _decoder: commitFederationDecoder }])); - - -} \ No newline at end of file + _decoder: commitFederationDecoder + }] + )); +} +//# sourceMappingURL=FakeABI.js.map \ No newline at end of file diff --git a/dist/lib/nativeContracts/NativeContracts.js b/dist/lib/nativeContracts/NativeContracts.js index d6d7c6f..7f27c7f 100644 --- a/dist/lib/nativeContracts/NativeContracts.js +++ b/dist/lib/nativeContracts/NativeContracts.js @@ -1,12 +1,12 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.NativeContracts = NativeContracts;exports.default = exports.parseNativeContracts = exports.defaultNativeContracts = void 0; +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.NativeContracts = NativeContracts;exports.parseNativeContracts = exports.defaultNativeContracts = exports.default = void 0; var _rskUtils = require("@rsksmart/rsk-utils"); -const defaultNativeContracts = { +const defaultNativeContracts = exports.defaultNativeContracts = { bridge: '0x0000000000000000000000000000000001000006', - remasc: '0x0000000000000000000000000000000001000008' };exports.defaultNativeContracts = defaultNativeContracts; + remasc: '0x0000000000000000000000000000000001000008' +}; - -const parseNativeContracts = nativeContracts => { +const parseNativeContracts = (nativeContracts) => { if (typeof nativeContracts !== 'object') throw new TypeError(`nativeContracts must be an object`); if (Object.keys(nativeContracts) < 1) throw new Error(`Empty native contracts list`); for (let name in nativeContracts) { @@ -21,19 +21,20 @@ function NativeContracts({ nativeContracts } = {}) { nativeContracts = parseNativeContracts(nativeContracts || defaultNativeContracts); const names = Object.keys(nativeContracts); - const getNativeContractAddress = contractName => { + const getNativeContractAddress = (contractName) => { return nativeContracts[contractName]; }; - const getNativeContractName = address => { + const getNativeContractName = (address) => { address = address.toLowerCase(); - return names.find(name => nativeContracts[name] === address); + return names.find((name) => nativeContracts[name] === address); }; - const isNativeContract = address => !!getNativeContractName(address); + const isNativeContract = (address) => !!getNativeContractName(address); const list = () => nativeContracts; return Object.freeze({ getNativeContractAddress, getNativeContractName, isNativeContract, list }); -}var _default = +}var _default = exports.default = -NativeContracts;exports.default = _default; \ No newline at end of file +NativeContracts; +//# sourceMappingURL=NativeContracts.js.map \ No newline at end of file diff --git a/dist/lib/nativeContracts/NativeContractsDecoder.js b/dist/lib/nativeContracts/NativeContractsDecoder.js index d9bdff8..13385b1 100644 --- a/dist/lib/nativeContracts/NativeContractsDecoder.js +++ b/dist/lib/nativeContracts/NativeContractsDecoder.js @@ -8,9 +8,10 @@ function NativeContractsEventDecoder({ bitcoinNetwork, txBlockNumber }) { const ABI = (0, _utils.addSignatureDataToAbi)((0, _bridgeAbi.getBridgeAbi)({ txBlockNumber, bitcoinNetwork })); const solidityDecoder = (0, _EventDecoder.default)(ABI); - const getEventDecoder = log => { + const getEventDecoder = (log) => { const { eventABI } = solidityDecoder.getEventAbi([...log.topics]); return eventABI ? solidityDecoder : nativeDecoder; }; return Object.freeze({ getEventDecoder }); -} \ No newline at end of file +} +//# sourceMappingURL=NativeContractsDecoder.js.map \ No newline at end of file diff --git a/dist/lib/nativeContracts/NativeContractsEvents.js b/dist/lib/nativeContracts/NativeContractsEvents.js index fefee03..4d842f9 100755 --- a/dist/lib/nativeContracts/NativeContractsEvents.js +++ b/dist/lib/nativeContracts/NativeContractsEvents.js @@ -4,27 +4,27 @@ var _FakeABI = _interopRequireDefault(require("./FakeABI"));function _interopReq function NativeContractsEvents({ bitcoinNetwork } = {}) { const network = bitcoinNetwork || 'testnet'; const fakeAbi = (0, _FakeABI.default)(network); - const decodeAddress = address => { + const decodeAddress = (address) => { address = Buffer.from((0, _rskUtils.remove0x)(address), 'hex'); return (0, _rskUtils.add0x)(address.toString('hex').slice(-40)); }; - const decodeEventName = name => { + const decodeEventName = (name) => { return Buffer.from((0, _rskUtils.remove0x)(name), 'hex').toString('ascii').replace(/\0/g, ''); }; - const removeEmptyStartBytes = d => { + const removeEmptyStartBytes = (d) => { d = !Buffer.isBuffer(d) ? Buffer.from(d, 'hex') : d; - return d.slice(d.findIndex(x => x > 0)); + return d.slice(d.findIndex((x) => x > 0)); }; - const decodeData = data => { + const decodeData = (data) => { let decoded = _rskUtils.rlp.decode(data); if (!Array.isArray(decoded)) decoded = [decoded]; - return decoded.map(d => (0, _rskUtils.add0x)(removeEmptyStartBytes(d).toString('hex'))); + return decoded.map((d) => (0, _rskUtils.add0x)(removeEmptyStartBytes(d).toString('hex'))); }; - const getEventAbi = eventName => fakeAbi.find(a => a.name === eventName && a.type === 'event'); + const getEventAbi = (eventName) => fakeAbi.find((a) => a.name === eventName && a.type === 'event'); const decodeByType = (type, value) => { if (type === 'address') return decodeAddress(value); @@ -39,7 +39,7 @@ function NativeContractsEvents({ bitcoinNetwork } = {}) { return decodeByType(type, value); }; - const removeCustomProperties = obj => { + const removeCustomProperties = (obj) => { const res = Object.assign({}, obj); for (let p in res) { if (p[0] === '_') delete res[p]; @@ -47,14 +47,14 @@ function NativeContractsEvents({ bitcoinNetwork } = {}) { return res; }; - const cleanAbi = abi => { + const cleanAbi = (abi) => { abi = removeCustomProperties(abi); let { inputs } = abi; - if (Array.isArray(inputs)) abi.inputs = inputs.map(input => removeCustomProperties(input)); + if (Array.isArray(inputs)) abi.inputs = inputs.map((input) => removeCustomProperties(input)); return abi; }; - const decodeLog = log => { + const decodeLog = (log) => { let topics = [...log.topics]; let event = decodeEventName(topics.shift()); let abi = getEventAbi(event); @@ -78,6 +78,7 @@ function NativeContractsEvents({ bitcoinNetwork } = {}) { return log; }; return Object.freeze({ decodeLog, abi: fakeAbi }); -}var _default = +}var _default = exports.default = -NativeContractsEvents;exports.default = _default; \ No newline at end of file +NativeContractsEvents; +//# sourceMappingURL=NativeContractsEvents.js.map \ No newline at end of file diff --git a/dist/lib/nativeContracts/bridgeAbi.js b/dist/lib/nativeContracts/bridgeAbi.js index dea334b..318fb54 100644 --- a/dist/lib/nativeContracts/bridgeAbi.js +++ b/dist/lib/nativeContracts/bridgeAbi.js @@ -1,11 +1,11 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.getBridgeAbi = getBridgeAbi;exports.RELEASES = void 0;var _bridgeOrchid = _interopRequireDefault(require("./bridge-orchid.json")); +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.RELEASES = void 0;exports.getBridgeAbi = getBridgeAbi;var _bridgeOrchid = _interopRequireDefault(require("./bridge-orchid.json")); var _bridgeWasabi = _interopRequireDefault(require("./bridge-wasabi.json")); var _bridgePapyrus = _interopRequireDefault(require("./bridge-papyrus.json")); var _bridgeIris = _interopRequireDefault(require("./bridge-iris.json")); var _bridgeFingerroot = _interopRequireDefault(require("./bridge-fingerroot.json")); var _bridgeHop = _interopRequireDefault(require("./bridge-hop.json"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} -const RELEASES = { +const RELEASES = exports.RELEASES = { mainnet: [ { height: 0, abi: _bridgeOrchid.default }, { height: 1591000, abi: _bridgeWasabi.default }, @@ -19,9 +19,9 @@ const RELEASES = { { height: 863000, abi: _bridgePapyrus.default }, { height: 2060500, abi: _bridgeIris.default }, { height: 3103000, abi: _bridgeHop.default }, - { height: 4015800, abi: _bridgeFingerroot.default }] };exports.RELEASES = RELEASES; - + { height: 4015800, abi: _bridgeFingerroot.default }] +}; function findmatchingAbi(txHeight, abisWithHeight) { const lastIndex = abisWithHeight.length - 1; @@ -44,4 +44,5 @@ function getBridgeAbi({ txBlockNumber, bitcoinNetwork }) { } return findmatchingAbi(txBlockNumber, RELEASES[bitcoinNetwork]); -} \ No newline at end of file +} +//# sourceMappingURL=bridgeAbi.js.map \ No newline at end of file diff --git a/dist/lib/nod3Connect.js b/dist/lib/nod3Connect.js index 31fb4e3..71b112b 100755 --- a/dist/lib/nod3Connect.js +++ b/dist/lib/nod3Connect.js @@ -1,10 +1,11 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.default = exports.nod3Connect = void 0;var _nod = _interopRequireDefault(require("@rsksmart/nod3"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.nod3Connect = exports.default = void 0;var _nod = _interopRequireDefault(require("@rsksmart/nod3"));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };} -const nod3Connect = url => { +const nod3Connect = (url) => { url = url || process.env['RSK_NODE_URL'] || 'http://localhost:4444'; return new _nod.default( - new _nod.default.providers.HttpProvider(url)); + new _nod.default.providers.HttpProvider(url) + ); +};exports.nod3Connect = nod3Connect;var _default = exports.default = -};exports.nod3Connect = nod3Connect;var _default = - -nod3Connect();exports.default = _default; \ No newline at end of file +nod3Connect(); +//# sourceMappingURL=nod3Connect.js.map \ No newline at end of file diff --git a/dist/lib/types.js b/dist/lib/types.js index a53b168..4b3983e 100755 --- a/dist/lib/types.js +++ b/dist/lib/types.js @@ -1,29 +1,30 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.tokensInterfaces = exports.contractsInterfaces = exports.bitcoinRskNetWorks = exports.bitcoinNetworks = exports.INTERFACE_ID_BYTES = exports.ABI_SIGNATURE = void 0;const ABI_SIGNATURE = '__signatureData';exports.ABI_SIGNATURE = ABI_SIGNATURE; +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.tokensInterfaces = exports.contractsInterfaces = exports.bitcoinRskNetWorks = exports.bitcoinNetworks = exports.INTERFACE_ID_BYTES = exports.ABI_SIGNATURE = void 0;const ABI_SIGNATURE = exports.ABI_SIGNATURE = '__signatureData'; -const INTERFACE_ID_BYTES = 4;exports.INTERFACE_ID_BYTES = INTERFACE_ID_BYTES; +const INTERFACE_ID_BYTES = exports.INTERFACE_ID_BYTES = 4; -const bitcoinNetworks = { +const bitcoinNetworks = exports.bitcoinNetworks = { TESTNET: 'testnet', MAINNET: 'mainnet', - REGTEST: 'regtest' };exports.bitcoinNetworks = bitcoinNetworks; + REGTEST: 'regtest' +}; - -const bitcoinRskNetWorks = { +const bitcoinRskNetWorks = exports.bitcoinRskNetWorks = { 31: bitcoinNetworks.TESTNET, 30: bitcoinNetworks.MAINNET, - 33: bitcoinNetworks.REGTEST };exports.bitcoinRskNetWorks = bitcoinRskNetWorks; - + 33: bitcoinNetworks.REGTEST +}; -const contractsInterfaces = { +const contractsInterfaces = exports.contractsInterfaces = { ERC20: 'ERC20', ERC677: 'ERC677', ERC165: 'ERC165', - ERC721: 'ERC721' };exports.contractsInterfaces = contractsInterfaces; - + ERC721: 'ERC721' +}; const ci = contractsInterfaces; -const tokensInterfaces = [ +const tokensInterfaces = exports.tokensInterfaces = [ ci.ERC20, ci.ERC677, -ci.ERC721];exports.tokensInterfaces = tokensInterfaces; \ No newline at end of file +ci.ERC721]; +//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/dist/lib/utils.js b/dist/lib/utils.js index f850881..c07b330 100755 --- a/dist/lib/utils.js +++ b/dist/lib/utils.js @@ -1,38 +1,38 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.filterEvents = filterEvents;exports.binarySearchNumber = binarySearchNumber;exports.getSignatureDataFromAbi = exports.erc165IdFromMethods = exports.erc165Id = exports.addSignatureDataToAbi = exports.abiSignatureData = exports.getInputsIndexes = exports.removeAbiSignatureData = exports.solidityName = exports.soliditySelector = exports.soliditySignature = exports.abiMethods = exports.abiEvents = exports.setAbi = void 0;var _rskUtils = require("@rsksmart/rsk-utils"); +"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.addSignatureDataToAbi = exports.abiSignatureData = exports.abiMethods = exports.abiEvents = void 0;exports.binarySearchNumber = binarySearchNumber;exports.erc165IdFromMethods = exports.erc165Id = void 0;exports.filterEvents = filterEvents;exports.soliditySignature = exports.soliditySelector = exports.solidityName = exports.setAbi = exports.removeAbiSignatureData = exports.getSignatureDataFromAbi = exports.getInputsIndexes = void 0;var _rskUtils = require("@rsksmart/rsk-utils"); var _types = require("./types"); -const setAbi = abi => addSignatureDataToAbi(abi, true);exports.setAbi = setAbi; +const setAbi = (abi) => addSignatureDataToAbi(abi, true);exports.setAbi = setAbi; -const abiEvents = abi => abi.filter(v => v.type === 'event');exports.abiEvents = abiEvents; +const abiEvents = (abi) => abi.filter((v) => v.type === 'event');exports.abiEvents = abiEvents; -const abiMethods = abi => abi.filter(v => v.type === 'function');exports.abiMethods = abiMethods; +const abiMethods = (abi) => abi.filter((v) => v.type === 'function');exports.abiMethods = abiMethods; -const soliditySignature = name => (0, _rskUtils.keccak256)(name);exports.soliditySignature = soliditySignature; +const soliditySignature = (name) => (0, _rskUtils.keccak256)(name);exports.soliditySignature = soliditySignature; -const soliditySelector = signature => signature.slice(0, 8);exports.soliditySelector = soliditySelector; +const soliditySelector = (signature) => signature.slice(0, 8);exports.soliditySelector = soliditySelector; -const solidityName = abi => { +const solidityName = (abi) => { let { name, inputs } = abi; - inputs = inputs ? inputs.map(i => i.type) : []; + inputs = inputs ? inputs.map((i) => i.type) : []; return name ? `${name}(${inputs.join(',')})` : null; };exports.solidityName = solidityName; -const removeAbiSignatureData = abi => { +const removeAbiSignatureData = (abi) => { abi = Object.assign({}, abi); if (undefined !== abi[_types.ABI_SIGNATURE]) delete abi[_types.ABI_SIGNATURE]; return abi; };exports.removeAbiSignatureData = removeAbiSignatureData; -const getInputsIndexes = abi => { +const getInputsIndexes = (abi) => { let { inputs } = abi; - return inputs && abi.type === 'event' ? inputs.map(i => i.indexed) : []; + return inputs && abi.type === 'event' ? inputs.map((i) => i.indexed) : []; };exports.getInputsIndexes = getInputsIndexes; -const abiSignatureData = abi => { +const abiSignatureData = (abi) => { let method = solidityName(abi); let signature = method ? soliditySignature(method) : null; let index = getInputsIndexes(abi); - let indexed = index ? index.filter(i => i === true).length : 0; + let indexed = index ? index.filter((i) => i === true).length : 0; let eventSignature = null; if (method && abi.type === 'event') { eventSignature = soliditySignature(`${method}${Buffer.from(index).toString('hex')}`); @@ -49,8 +49,8 @@ const addSignatureDataToAbi = (abi, skip) => { return abi; };exports.addSignatureDataToAbi = addSignatureDataToAbi; -const erc165Id = selectors => { - let id = selectors.map(s => Buffer.from(s, 'hex')). +const erc165Id = (selectors) => { + let id = selectors.map((s) => Buffer.from(s, 'hex')). reduce((a, bytes) => { for (let i = 0; i < _types.INTERFACE_ID_BYTES; i++) { a[i] = a[i] ^ bytes[i]; @@ -60,29 +60,29 @@ const erc165Id = selectors => { return (0, _rskUtils.add0x)(id.toString('hex')); };exports.erc165Id = erc165Id; -const erc165IdFromMethods = methods => { - return erc165Id(methods.map(m => soliditySelector(soliditySignature(m)))); +const erc165IdFromMethods = (methods) => { + return erc165Id(methods.map((m) => soliditySelector(soliditySignature(m)))); };exports.erc165IdFromMethods = erc165IdFromMethods; -const getSignatureDataFromAbi = abi => { +const getSignatureDataFromAbi = (abi) => { return abi[_types.ABI_SIGNATURE]; };exports.getSignatureDataFromAbi = getSignatureDataFromAbi; function filterEvents(abi) { const type = 'event'; // get events from ABI - let events = abi.filter(a => a.type === type); + let events = abi.filter((a) => a.type === type); // remove events from ABI - abi = abi.filter(a => a.type !== type); - let keys = [...new Set(events.map(e => e[_types.ABI_SIGNATURE].eventSignature))]; - events = keys.map(k => events.find(e => e[_types.ABI_SIGNATURE].eventSignature === k)); + abi = abi.filter((a) => a.type !== type); + let keys = [...new Set(events.map((e) => e[_types.ABI_SIGNATURE].eventSignature))]; + events = keys.map((k) => events.find((e) => e[_types.ABI_SIGNATURE].eventSignature === k)); abi = abi.concat(events); return abi; } function filterArr(a) { if (!Array.isArray(a)) return a; - return a.find(x => filterArr(x)); + return a.find((x) => filterArr(x)); } async function binarySearchNumber(searchCb, high, low) { @@ -90,7 +90,7 @@ async function binarySearchNumber(searchCb, high, low) { high = parseInt(high || 0); low = parseInt(low || 0); if (typeof searchCb !== 'function') throw new Error('SeachCb must be a function'); - let [l, h] = await Promise.all([low, high].map(b => searchCb(b))); + let [l, h] = await Promise.all([low, high].map((b) => searchCb(b))); if (l !== h) { if (high === low + 1) { return high; @@ -105,4 +105,5 @@ async function binarySearchNumber(searchCb, high, low) { } catch (err) { return Promise.reject(err); } -} \ No newline at end of file +} +//# sourceMappingURL=utils.js.map \ No newline at end of file From b81bfa1bd45ba6f90499f5916e6671b53dbb4c2c Mon Sep 17 00:00:00 2001 From: Dario Date: Tue, 19 Dec 2023 00:41:01 -0300 Subject: [PATCH 32/33] feat/increase-package-version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2200a3c..0018f50 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@rsksmart/rsk-contract-parser", - "version": "1.0.3", + "version": "1.0.4", "description": "", "main": "dist/index.js", "scripts": { From b5102bcbf2dea0b5854bcc7f5c6e7320e9e609df Mon Sep 17 00:00:00 2001 From: Ezequiel Martin Rodriguez <123201718+ezequiel-rodriguez@users.noreply.github.com> Date: Mon, 12 Aug 2024 13:34:00 -0300 Subject: [PATCH 33/33] Update LICENSE --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index f450bac..a9d94e7 100755 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2017-2019 IOV Labs +Copyright (c) 2024 RootstockLabs Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal